thread/src/NOOP/Thread.m3


MODULE Thread EXPORTS Thread, ThreadF, Scheduler, RTThreadInit;

IMPORT FloatMode;
Null implementation

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 --

PROCEDURE GetCurrentHandlers(): ADDRESS=
  BEGIN
    RETURN currentHandlers;
  END GetCurrentHandlers;

PROCEDURE SetCurrentHandlers(h: ADDRESS)=
  BEGIN
    currentHandlers := h;
  END SetCurrentHandlers;

PROCEDURE Init()=
  BEGIN
  END Init;

PROCEDURE GetDefaultStackSize(): CARDINAL=
  BEGIN RAISE NotImplemented
  END GetDefaultStackSize;

PROCEDURE MinDefaultStackSize(min: CARDINAL)=
  BEGIN RAISE NotImplemented
  END MinDefaultStackSize;

PROCEDURE IncDefaultStackSize(inc: CARDINAL)=
  BEGIN RAISE NotImplemented
  END IncDefaultStackSize;

PROCEDURE NewMutex(): Mutex=
  BEGIN RETURN NEW(MUTEX);
  END NewMutex;

PROCEDURE NewCondition(): Condition=
  BEGIN RETURN NEW(Condition)
  END NewCondition;

PROCEDURE Fork(cl: Closure): T=
  BEGIN RAISE NotImplemented
  END Fork;

PROCEDURE Join(t: T): REFANY=
  BEGIN RAISE NotImplemented
  END Join;

PROCEDURE Wait(m: Mutex; c: Condition)=
  BEGIN
  END Wait;

PROCEDURE Acquire(m: Mutex)=
  BEGIN
  END Acquire;

PROCEDURE Release(m: Mutex)=
  BEGIN
  END Release;

PROCEDURE Broadcast(c: Condition)=
  BEGIN
  END Broadcast;

PROCEDURE Signal(c: Condition)=
  BEGIN
  END Signal;

PROCEDURE Self(): T=
  BEGIN RAISE NotImplemented
  END Self;

PROCEDURE Alert(t: T)=
  BEGIN RAISE NotImplemented
  END Alert;

PROCEDURE TestAlert(): BOOLEAN=
  BEGIN RETURN FALSE
  END TestAlert;

PROCEDURE AlertWait(m: Mutex; c: Condition) RAISES {Alerted}=
  BEGIN
  END AlertWait;

PROCEDURE AlertJoin(t: T): REFANY RAISES {Alerted}=
  BEGIN RAISE NotImplemented
  END AlertJoin;

PROCEDURE Yield()=
  BEGIN
  END Yield;

PROCEDURE ProcessStacks (p: PROCEDURE (start, stop: ADDRESS)) =
  BEGIN
  END ProcessStacks;

PROCEDURE Pause(n: LONGREAL)=
  BEGIN
  END Pause;

PROCEDURE AlertPause(n: LONGREAL) RAISES {Alerted}=
  BEGIN
  END AlertPause;

PROCEDURE MyFPState (): UNTRACED REF FloatMode.ThreadState =
  BEGIN
  END MyFPState;

PROCEDURE RegisterHooks(h: Hooks; init := TRUE): Hooks RAISES {}=
  BEGIN
  END RegisterHooks;

PROCEDURE MyId(): Id RAISES {}=
  BEGIN
  END MyId;

BEGIN
END Thread.

interface ThreadF is in:


interface FloatMode is in: