101 and termination is possible: |
101 and termination is possible: |
102 any other process can wait for a process to suspend or terminate. |
102 any other process can wait for a process to suspend or terminate. |
103 This waiting is implemented by using suspendSemaphore and exitBlocks |
103 This waiting is implemented by using suspendSemaphore and exitBlocks |
104 (where an exitSemaphore is signalled). |
104 (where an exitSemaphore is signalled). |
105 See waitUntilSuspended / waitUntilTerminated. |
105 See waitUntilSuspended / waitUntilTerminated. |
|
106 |
|
107 |
|
108 Process states: |
|
109 #dead process has (been) terminated; |
|
110 the process instance has no underlting |
|
111 thread. |
|
112 |
|
113 #run the process is willing to run, |
|
114 but not active (i.e. another higher prio |
|
115 process is currently executing) |
|
116 |
|
117 #active the process is the current process |
|
118 (there is only one) |
|
119 |
|
120 #ioWait waiting on some io-related semaphore |
|
121 (typically in #readWait / #writeWait) |
|
122 |
|
123 #eventWait waiting on some GUI event |
|
124 |
|
125 #timeWait waiting on a timer-related semaphore |
|
126 |
|
127 #wait waiting on some (other) semaphore |
|
128 |
|
129 #suspended stopped from execution; however, an interrupt |
|
130 will return it into the run state. |
|
131 |
|
132 #stopped stopped from execution; an interrupt will |
|
133 NOT return it into the run state (for debugging) |
|
134 |
|
135 #debug debugger sitting on top of the processes |
|
136 stack. |
|
137 |
|
138 Win32 only: |
|
139 |
|
140 #osWait waiting on an OS-API call to finish. |
|
141 can be interrupted, terminated and aborted |
|
142 (i.e. the usual context actions are is possible). |
|
143 |
|
144 #hardStopped thread was cought while in a blocking API call |
|
145 or primitive endless loop and has been stopped by |
|
146 the scheduler. |
|
147 Can only be resumed or hard-terminated - abort |
|
148 or soft terminate or unwind actions are not possible. |
|
149 (due to win32 limitations) |
|
150 |
106 |
151 |
107 [Instance variables:] |
152 [Instance variables:] |
108 |
153 |
109 id <SmallInteger> a unique process-id |
154 id <SmallInteger> a unique process-id |
110 |
155 |