Morphic UI process
Last updated at 5:44 pm UTC on 1 May 2019
Each MorphicProject object has a user interface process running it.
The code executed in the process is a loop
[world doOneCycle. Processor yield ] repeat.
The process is created when the project is entered. There is a call #spawnNewProcess which creates a new UI process for the project to be entered.
MorphicProject>>
spawnNewProcess
uiProcess := [
[world doOneCycle. Processor yield ] repeat.
] newProcess priority: Processor userSchedulingPriority.
uiProcess resume
The process is terminated (= set to nil ) when the project is left
MorphicProject>>
terminateProcessForLeave
"There is only one UI process. Kill it."
self assert: Processor activeProcess == uiProcess.
uiProcess := nil.
Processor terminateActive.
See also
Use case: 'New MorphicProject'