XEROX
BUSINESS SYSTEMS
System Development Division
November 21, 1977
To:Distribution

From:Dick Sweet

Subject:
Mesa Language Working Group minutes

The Language Working Group met on 15 November, 1977. Monitors were discussed.
Recall the items
1. Independent FORK
2. Return type of a FORK
3. Questions of scope
4. Initialization of Monitors and condition variables
5. Monitor priority
6. Condition timeout
7. Aborts
8. Interaction with SIGNALs
Item 1. Independent FORK.
Provide some system procedure to say "detatch" on the process. It could set the PSB so that joining would either fail or return immediately, or whatever is right.
Item 2. Return type of a FORK construct.
If pr: PROCEDURE [inrec] RETURNS [outrec] is forked, the value of the FORK construct is a PROCEDURE RETURNS [outrec]; It could be internally be an indirect link into the PSB (with suitable alignment) so that aborting a process would be easier.
Items 5 and 6. Monitor Priority and Condition Timeout.
If simple (i.e. constant) default parameters are implemented for record declarations, then the priority or timeout can public fields and can be given in the declaration. This would require a change to the compiler to allow constructors for records with private fields. Otherwise, all monitors are created with some default priority and a system procedure is provided to set it otherwise. The same is presumably true for condition timeouts
Item 7. Aborts.
Not part of the language.
Item 8. Interaction with SIGNALs.
After considerable discussion, it was decided that one would have to explicitly catch UNWIND in the monitor if it was thought possible that one could happen. The compiler would help by generating an "exit monitor" at the end of an UNWIND catchphrase within an entry procedure. On the subject of detecting the unwinding of a monitor without catching the signal, Butler suggested a sledge-hammer check of a bit in the code segment that says that there are some entry procedures in this segment.