-
<Process class>
primitiveProcessCreate:ifFail:
^<Process>
'Creates a new process'
Parameters:
block <BlockWithoutArguments>
Errors:
ProcessAllocationFailed
-
primitiveProcessYield
^<Process>
'Yields the control to the scheduler.'
'Does nothing if executed by the scheduler.'
'Returns current process when regaining control.'
-
primitiveProcessStop
^<Process>
'Yields the control to the scheduler.'
'Does nothing if executed by the scheduler.'
'Returns current process when regaining control.'
-
primitiveProcessActiveProcess
^<Object>
'Returns the active process'
-
primitiveProcessTransferTo:ifFail:
^<Object>
'Transfers the control from the scheduler to a process.'
'Returns the status of process (see primitiveProcessStatus).'
Parameters:
process <Process>
Errors:
NotInScheduler
ProcessCannotContinue
Dead
-
primitiveProcessSingleStep:ifFail:
^<Object>
'Transfers the control from the scheduler to a process,'
'performs a single step and yields.'
'Returns the status of process (see primitiveProcessStatus).'
Parameters:
process <Process>
Errors:
NotInScheduler
ProcessCannotContinue
Dead
-
<Process>
primitiveProcessTerminateIfFail:
^<Self>
'Terminates the process'
Errors:
Dead
Flags: NLR
-
<Process>
primitiveProcessStatus
^<Symbol>
'Returns the process status:'
' #Initialized - State right after creation.'
' #Yielded - Gave up control by calling yield.'
' #Running - Is running.'
' #InAsyncDLL - Gave up control but continues to execute asynchronous DLL.'
' #Stopped - Gave up control by calling stop.'
' #Preempted - Was preempted by system.'
' #Completed - Ran to completion.'
' #Dead - The process is dead.'
' #BooleanError - A boolean was expected at hardcoded control structure.'
' #FloatError - A float was expected at hardcoded float operation.'
' #LookupError - The receiver does not understand doesNotUnderstand:.'
' #PrimitiveLookupError - Binding a primitive failed.'
' #DLLLookupError - Binding a DLL function failed.'
' #NLRError - Context for NLR did not exist.'
' #StackOverflow - Stack exhausted.'
-
<Process>
primitiveProcessSchedulerWait:ifFail:
^<Boolean>
'Waits until timer has expired or a asynchronous dll call has returned.'
'Returns whether the timer expired.'
Parameters:
milliseconds <SmallInteger>
-
<Process>
primitiveProcessTraceStack:ifFail:
^<Self>
'Prints the stack trace'
Parameters:
size <SmallInteger>
-
primitiveProcessEnterCritical
^<Process>
'Disables preemption in active process.'
-
primitiveProcessLeaveCritical
^<Process>
'Enables preemption in active process'
-
primitiveProcessYieldInCritical
^<Process>
'Yields the control to the scheduler.'
'Does nothing if executed by the scheduler.'
'Returns current process when regaining control.'
-
<Process>
primitiveProcessUserTime
^<Float>
'Returns time, in seconds, the process has spent in user code'
-
<Process>
primitiveProcessSystemTime
^<Float>
'Returns time, in seconds, the process has spent in system code'
-
<Process>
primitiveProcessStackLimit:ifFail:
^<IndexedInstanceVariables>
'Returns an array of the process activation'
Parameters:
limit <SmallInteger>