MODULENull implementationThread EXPORTSThread ,ThreadF ,Scheduler ,RTThreadInit ; IMPORT FloatMode;
REVEAL MUTEX = BRANDED "Mutex 1.0" OBJECT END; Condition = BRANDED "Thread.Condition v1.0" OBJECT END; T = BRANDED "Thread.T v1.5" OBJECT END; EXCEPTION NotImplemented;--------------------------------------------- exception handling support --
PROCEDUREGetCurrentHandlers (): ADDRESS= BEGIN RETURN currentHandlers; END GetCurrentHandlers; PROCEDURESetCurrentHandlers (h: ADDRESS)= BEGIN currentHandlers := h; END SetCurrentHandlers; PROCEDUREInit ()= BEGIN END Init; PROCEDUREGetDefaultStackSize (): CARDINAL= BEGIN RAISE NotImplemented END GetDefaultStackSize; PROCEDUREMinDefaultStackSize (min: CARDINAL)= BEGIN RAISE NotImplemented END MinDefaultStackSize; PROCEDUREIncDefaultStackSize (inc: CARDINAL)= BEGIN RAISE NotImplemented END IncDefaultStackSize; PROCEDURENewMutex (): Mutex= BEGIN RETURN NEW(MUTEX); END NewMutex; PROCEDURENewCondition (): Condition= BEGIN RETURN NEW(Condition) END NewCondition; PROCEDUREFork (cl: Closure): T= BEGIN RAISE NotImplemented END Fork; PROCEDUREJoin (t: T): REFANY= BEGIN RAISE NotImplemented END Join; PROCEDUREWait (m: Mutex; c: Condition)= BEGIN END Wait; PROCEDUREAcquire (m: Mutex)= BEGIN END Acquire; PROCEDURERelease (m: Mutex)= BEGIN END Release; PROCEDUREBroadcast (c: Condition)= BEGIN END Broadcast; PROCEDURESignal (c: Condition)= BEGIN END Signal; PROCEDURESelf (): T= BEGIN RAISE NotImplemented END Self; PROCEDUREAlert (t: T)= BEGIN RAISE NotImplemented END Alert; PROCEDURETestAlert (): BOOLEAN= BEGIN RETURN FALSE END TestAlert; PROCEDUREAlertWait (m: Mutex; c: Condition) RAISES {Alerted}= BEGIN END AlertWait; PROCEDUREAlertJoin (t: T): REFANY RAISES {Alerted}= BEGIN RAISE NotImplemented END AlertJoin; PROCEDUREYield ()= BEGIN END Yield; PROCEDUREProcessStacks (p: PROCEDURE (start, stop: ADDRESS)) = BEGIN END ProcessStacks; PROCEDUREPause (n: LONGREAL)= BEGIN END Pause; PROCEDUREAlertPause (n: LONGREAL) RAISES {Alerted}= BEGIN END AlertPause; PROCEDUREMyFPState (): UNTRACED REF FloatMode.ThreadState = BEGIN END MyFPState; PROCEDURERegisterHooks (h: Hooks; init := TRUE): Hooks RAISES {}= BEGIN END RegisterHooks; PROCEDUREMyId (): Id RAISES {}= BEGIN END MyId; BEGIN END Thread.