<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
Index: src/float/DS3100/FloatMode.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/float/DS3100/FloatMode.m3,v<br>retrieving revision 1.2<br>diff -u -w -r1.2 FloatMode.m3<br>--- src/float/DS3100/FloatMode.m3    14 Feb 2006 14:46:37 -0000    1.2<br>+++ src/float/DS3100/FloatMode.m3    13 Sep 2009 13:27:35 -0000<br>@@ -21,7 +21,7 @@<br>        doesn't cause floating-point exceptions)<br> *)<br> <br>-IMPORT FPU, Usignal, ThreadF, Word, RTMisc;<br>+IMPORT FPU, Usignal, ThreadInternal, Word, RTMisc;<br> <br> TYPE RM  = RoundingMode;<br> TYPE MRM = FPU.RoundingMode;<br>@@ -53,7 +53,7 @@<br>       ExtractFlags (status, state, flags);<br>     END Get;<br>   BEGIN<br>-    ThreadF.GetMyFPState(Get);<br>+    ThreadInternal.GetMyFPState(Get);<br>     RETURN flags;<br>   END GetFlags;<br> <br>@@ -141,7 +141,7 @@<br>       END;<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>     RETURN flags;<br>   END SetFlags;<br> <br>@@ -163,7 +163,7 @@<br>       state.sticky [f] := FALSE;<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>   END ClearFlag;<br> <br> TYPE<br>@@ -242,7 +242,7 @@<br>       EVAL FPU.SetStatus (LOOPHOLE (status, INTEGER));<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>   END SetBehavior;<br> <br> PROCEDURE GetBehavior(f: Flag): Behavior =<br>@@ -252,7 +252,7 @@<br>       behavior := state.behavior [f];<br>     END Get;<br>   BEGIN<br>-    ThreadF.GetMyFPState(Get);<br>+    ThreadInternal.GetMyFPState(Get);<br>     RETURN behavior;<br>   END GetBehavior;<br> <br>Index: src/float/IRIX5/FloatMode.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/float/IRIX5/FloatMode.m3,v<br>retrieving revision 1.2<br>diff -u -w -r1.2 FloatMode.m3<br>--- src/float/IRIX5/FloatMode.m3    14 Feb 2006 14:46:37 -0000    1.2<br>+++ src/float/IRIX5/FloatMode.m3    13 Sep 2009 13:27:35 -0000<br>@@ -22,7 +22,7 @@<br>        doesn't cause floating-point exceptions)<br> *)<br> <br>-IMPORT FPU, Usignal, ThreadF, Word, RTError;<br>+IMPORT FPU, Usignal, ThreadInternal, Word, RTError;<br> <br> TYPE RM  = RoundingMode;<br> TYPE MRM = FPU.RoundingMode;<br>@@ -54,7 +54,7 @@<br>       ExtractFlags (status, state, flags);<br>     END Get;<br>   BEGIN<br>-    ThreadF.GetMyFPState(Get);<br>+    ThreadInternal.GetMyFPState(Get);<br>     RETURN flags;<br>   END GetFlags;<br> <br>@@ -142,7 +142,7 @@<br>       END;<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>     RETURN flags;<br>   END SetFlags;<br> <br>@@ -164,7 +164,7 @@<br>       state.sticky [f] := FALSE;<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>   END ClearFlag;<br> <br> TYPE<br>@@ -243,7 +243,7 @@<br>       EVAL FPU.SetStatus (LOOPHOLE (status, INTEGER));<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>   END SetBehavior;<br> <br> PROCEDURE GetBehavior(f: Flag): Behavior =<br>@@ -253,7 +253,7 @@<br>       behavior := state.behavior [f];<br>     END Get;<br>   BEGIN<br>-    ThreadF.GetMyFPState(Get);<br>+    ThreadInternal.GetMyFPState(Get);<br>     RETURN behavior;<br>   END GetBehavior;<br> <br>Index: src/float/VAX/FloatMode.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/float/VAX/FloatMode.m3,v<br>retrieving revision 1.2<br>diff -u -w -r1.2 FloatMode.m3<br>--- src/float/VAX/FloatMode.m3    14 Feb 2006 14:46:37 -0000    1.2<br>+++ src/float/VAX/FloatMode.m3    13 Sep 2009 13:27:35 -0000<br>@@ -9,7 +9,7 @@<br> <br> MODULE FloatMode (* FOR VAX *);<br> <br>-IMPORT ThreadF;<br>+IMPORT ThreadInternal;<br> <br> PROCEDURE SetRounding(md: RoundingMode) RAISES {Failure} =<br>   BEGIN<br>@@ -28,7 +28,7 @@<br>       flags := state.sticky;<br>     END Get;<br>   BEGIN<br>-    ThreadF.GetMyFPState(Get);<br>+    ThreadInternal.GetMyFPState(Get);<br>     RETURN flags;<br>   END GetFlags;<br> <br>@@ -49,7 +49,7 @@<br>       state.sticky := state.sticky - SET OF Flag {f};<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>   END ClearFlag;<br> <br> TYPE<br>@@ -74,7 +74,7 @@<br>       state.behavior [f] := b;<br>     END Set;<br>   BEGIN<br>-    ThreadF.SetMyFPState(Set);<br>+    ThreadInternal.SetMyFPState(Set);<br>   END SetBehavior;<br> <br> PROCEDURE GetBehavior(f: Flag): Behavior =<br>Index: src/runtime/NT386/RTSignal.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/NT386/RTSignal.m3,v<br>retrieving revision 1.2<br>diff -u -w -r1.2 RTSignal.m3<br>--- src/runtime/NT386/RTSignal.m3    12 Feb 2001 15:22:45 -0000    1.2<br>+++ src/runtime/NT386/RTSignal.m3    13 Sep 2009 13:27:35 -0000<br>@@ -4,7 +4,7 @@<br> UNSAFE MODULE RTSignal;<br> <br> IMPORT RT0, RTMachInfo, RTError, RTException, RTProcess, RuntimeError;<br>-IMPORT WinBase, WinCon, WinDef, WinNT, ThreadContext, Thread, ThreadF;<br>+IMPORT WinBase, WinCon, WinDef, WinNT, ThreadContext, Thread, ThreadInternal;<br> <br> TYPE<br>   RTE = RuntimeError.T;<br>@@ -60,7 +60,7 @@<br>     END;<br> <br>     (* Otherwise, just dump our guts... *)<br>-    ThreadF.SuspendOthers ();<br>+    ThreadInternal.SuspendOthers ();<br>     FOR i := FIRST (SysErrs) TO LAST (SysErrs) DO<br>       IF (SysErrs[i].err = err) THEN<br>         RTError.ReportPC (pc, SysErrs[i].msg);<br>@@ -71,7 +71,7 @@<br>         EXIT;<br>       END;<br>     END;<br>-    ThreadF.ResumeOthers ();<br>+    ThreadInternal.ResumeOthers ();<br> (***<br>     IF (old_filter # NIL)<br>       THEN RETURN old_filter (info);<br>Index: src/runtime/WIN32/RTOS.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/WIN32/RTOS.m3,v<br>retrieving revision 1.5<br>diff -u -w -r1.5 RTOS.m3<br>--- src/runtime/WIN32/RTOS.m3    29 Dec 2008 10:23:39 -0000    1.5<br>+++ src/runtime/WIN32/RTOS.m3    13 Sep 2009 13:27:35 -0000<br>@@ -6,7 +6,7 @@<br> <br> UNSAFE MODULE RTOS;<br> <br>-IMPORT RTMachInfo, RTSignal, ThreadF;<br>+IMPORT RTMachInfo, RTSignal, ThreadInternal;<br> IMPORT WinBase, WinCon, WinDef;<br> <br> (*--------------------------------------------------- process termination ---*)<br>@@ -20,7 +20,7 @@<br>   CONST Magic = 1 * ADRSIZE (INTEGER);  (* == offset of "fp" in this frame *)<br>   VAR fp: ADDRESS := ADR (fp) + Magic;  (* == my frame pointer *)<br>   BEGIN<br>-    ThreadF.SuspendOthers ();<br>+    ThreadInternal.SuspendOthers ();<br>     RTMachInfo.DumpStack (LOOPHOLE (Crash, ADDRESS), fp);<br>     RTSignal.RestoreHandlers (); (* so we really do crash... *)<br>     IF WinBase.IsDebuggerPresent () # 0 THEN<br>@@ -33,7 +33,7 @@<br> PROCEDURE Crash () =<br>   VAR ptr := LOOPHOLE(-99, UNTRACED REF INTEGER);<br>   BEGIN<br>-    ThreadF.SuspendOthers ();<br>+    ThreadInternal.SuspendOthers ();<br>     ptr^ := 99; (* try to get to the debugger... *)<br>     Exit (-1);<br>   END Crash;<br>Index: src/runtime/common/RTAllocator.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/common/RTAllocator.m3,v<br>retrieving revision 1.32<br>diff -u -w -r1.32 RTAllocator.m3<br>--- src/runtime/common/RTAllocator.m3    8 Sep 2009 16:41:37 -0000    1.32<br>+++ src/runtime/common/RTAllocator.m3    13 Sep 2009 13:27:35 -0000<br>@@ -14,7 +14,7 @@<br> UNSAFE MODULE RTAllocator<br> EXPORTS RTAllocator, RTAllocCnts, RTHooks, RTHeapRep;<br> <br>-IMPORT Cstdlib, RT0, RTMisc, RTOS, RTType, Scheduler, ThreadUnsafe;<br>+IMPORT Cstdlib, RT0, RTMisc, RTOS, RTType, Scheduler, ThreadInternal;<br> IMPORT RuntimeError AS RTE, Word;<br> FROM RTType IMPORT Typecode;<br> <br>@@ -71,7 +71,7 @@<br>   VAR<br>     hdr: RefHeader;  def: RT0.TypeDefn;  dataSize: CARDINAL;<br>     res: ADDRESS;<br>-    thread := ThreadUnsafe.MyHeapState();<br>+    thread := ThreadInternal.MyHeapState();<br>   BEGIN<br>     IF (ref = NIL) THEN RETURN NIL; END;<br>     IF Word.And(LOOPHOLE(ref, Word.T), 1) # 0 THEN RETURN ref; END;<br>@@ -192,7 +192,7 @@<br> PROCEDURE GetTracedRef (def: RT0.TypeDefn): REFANY =<br>   VAR<br>     res: ADDRESS;<br>-    thread := ThreadUnsafe.MyHeapState();<br>+    thread := ThreadInternal.MyHeapState();<br>   BEGIN<br>     IF def.typecode = 0 OR def.traced # 1 OR def.kind # ORD(TK.Ref) THEN<br>       RTE.Raise(RTE.T.ValueOutOfRange);<br>@@ -214,7 +214,7 @@<br> PROCEDURE GetTracedObj (def: RT0.TypeDefn): ROOT =<br>   VAR<br>     res: ADDRESS;<br>-    thread := ThreadUnsafe.MyHeapState();<br>+    thread := ThreadInternal.MyHeapState();<br>   BEGIN<br>     IF def.typecode = 0 OR def.traced # 1 OR def.kind # ORD(TK.Obj) THEN<br>       RTE.Raise(RTE.T.ValueOutOfRange);<br>@@ -283,7 +283,7 @@<br>   VAR<br>     res: ADDRESS;<br>     dataSize: CARDINAL;<br>-    thread := ThreadUnsafe.MyHeapState();<br>+    thread := ThreadInternal.MyHeapState();<br>   BEGIN<br>     IF def.typecode = 0 OR def.traced # 1 OR def.kind # ORD(TK.Array) THEN<br>       RTE.Raise(RTE.T.ValueOutOfRange);<br>Index: src/runtime/common/RTCollector.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/common/RTCollector.m3,v<br>retrieving revision 1.69<br>diff -u -w -r1.69 RTCollector.m3<br>--- src/runtime/common/RTCollector.m3    13 Sep 2009 04:57:33 -0000    1.69<br>+++ src/runtime/common/RTCollector.m3    13 Sep 2009 13:27:35 -0000<br>@@ -16,7 +16,7 @@<br> <br> IMPORT RT0, RTHeapEvent, RTHeapMap, RTIO, RTMachine;<br> IMPORT RTMisc, RTOS, RTParams, RTPerfTool, RTProcess, RTType;<br>-IMPORT Word, Thread, ThreadF, RuntimeError;<br>+IMPORT Word, Thread, ThreadInternal, RuntimeError;<br> IMPORT TextLiteral AS TextLit, RTLinker, Time;<br> <br> FROM RT0 IMPORT Typecode, TypeDefn;<br>@@ -732,7 +732,7 @@<br> <br> PROCEDURE CollectSomeInStateZero () =<br>   BEGIN<br>-    ThreadF.SuspendOthers ();<br>+    ThreadInternal.SuspendOthers ();<br> <br>     <* ASSERT disableCount + disableMotionCount = 0 *><br>     (* compute some costs relative to previous collection *)<br>@@ -806,7 +806,7 @@<br>        pages, because we want to make sure that old, impure, dirty<br>        pages referenced by threads are marked as ambiguous roots.<br>        Otherwise, these pages won't get cleaned before we return. *)<br>-    ThreadF.ProcessStacks(NoteStackLocations);<br>+    ThreadInternal.ProcessStacks(NoteStackLocations);<br>     (* Now, nothing in previous space is referenced by a thread. *)<br> <br>     (* Promote any remaining "old" pages and unprotect everything else *)<br>@@ -886,7 +886,7 @@<br>     collectorState := CollectorState.One;<br>     IF backgroundWaiting THEN signalBackground := TRUE; END;<br> <br>-    ThreadF.ResumeOthers ();<br>+    ThreadInternal.ResumeOthers ();<br>   END CollectSomeInStateZero;<br> <br> (* Clean gray nodes *)<br>@@ -1615,9 +1615,9 @@<br> <br> PROCEDURE After (self: MonitorClosure) =<br>   BEGIN<br>-    ThreadF.SuspendOthers();<br>+    ThreadInternal.SuspendOthers();<br>     SanityCheck (self);<br>-    ThreadF.ResumeOthers();<br>+    ThreadInternal.ResumeOthers();<br>   END After;<br> <br> PROCEDURE SanityCheck (<*UNUSED*> self: MonitorClosure) =<br>@@ -1790,7 +1790,7 @@<br>   BEGIN<br>     TRY<br>       Disable();<br>-      ThreadF.SuspendOthers();<br>+      ThreadInternal.SuspendOthers();<br>       FOR p := p0 TO p1 - 1 DO<br>         IF desc[p - p0] = 0 THEN<br>           WITH page = PageToRef(p), d = page.desc DO<br>@@ -1813,7 +1813,7 @@<br>         END;<br>       END;<br>     FINALLY<br>-      ThreadF.ResumeOthers();<br>+      ThreadInternal.ResumeOthers();<br>       Enable();<br>     END;<br>   END VisitAllRefs;<br>Index: src/runtime/common/RTHeapStats.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/common/RTHeapStats.m3,v<br>retrieving revision 1.6<br>diff -u -w -r1.6 RTHeapStats.m3<br>--- src/runtime/common/RTHeapStats.m3    8 Sep 2009 05:54:55 -0000    1.6<br>+++ src/runtime/common/RTHeapStats.m3    13 Sep 2009 13:27:35 -0000<br>@@ -5,7 +5,7 @@<br> (* Last modified on Fri May  5 08:22:31 PDT 1995 by kalsow     *)<br> <br> (* The code below makes the following NASTY assumption:<br>-      ThreadF.ProcessStacks calls its argument twice for<br>+      ThreadInternal.ProcessStacks calls its argument twice for<br>       each thread -- the first time for the stack, the<br>       second time for its registers. *)<br> <br>@@ -13,7 +13,7 @@<br> <br> IMPORT RT0, RTCollector, RTModule, RTIO, RTHeapMap, RTHeapRep, RTMisc;<br> IMPORT RTOS, RTType, RTTypeSRC, RTProcedure, RTProcedureSRC, RTMachine; <br>-IMPORT RTStack, ThreadF, Word, Text;<br>+IMPORT RTStack, ThreadInternal, Word, Text;<br> FROM RTIO IMPORT PutInt, PutAddr, PutText;<br> <br> TYPE<br>@@ -96,7 +96,7 @@<br>     (* freeze the world *)<br>     RTCollector.Disable ();<br>     RTOS.LockHeap (); (* freeze the heap *)<br>-    ThreadF.SuspendOthers ();<br>+    ThreadInternal.SuspendOthers ();<br> <br>     (* capture the heap limits *)<br>     heap_min  := LOOPHOLE (RTHeapRep.p0 * RTHeapRep.BytesPerPage, ADDRESS);<br>@@ -146,7 +146,7 @@<br>     (* thaw the world *)<br>     DISPOSE (visit_stack);<br>     DISPOSE (map);<br>-    ThreadF.ResumeOthers ();<br>+    ThreadInternal.ResumeOthers ();<br>     RTOS.UnlockHeap (); (* unfreeze the heap *)<br>     RTCollector.Enable ();<br>   END ReportReachable;<br>@@ -282,7 +282,7 @@<br>   BEGIN<br>     self_id := -1;<br>     mark_addr := ADR (i);<br>-    ThreadF.ProcessStacks (GetThread);<br>+    ThreadInternal.ProcessStacks (GetThread);<br>     RTIO.PutText ("Threads: ");<br>     RTIO.PutInt (n_threads);<br>     IF (n_threads > NUMBER (threads)) THEN<br>Index: src/runtime/common/RTLinker.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/common/RTLinker.m3,v<br>retrieving revision 1.15<br>diff -u -w -r1.15 RTLinker.m3<br>--- src/runtime/common/RTLinker.m3    8 Sep 2009 05:54:55 -0000    1.15<br>+++ src/runtime/common/RTLinker.m3    13 Sep 2009 13:27:36 -0000<br>@@ -12,7 +12,7 @@<br> <br> IMPORT Cstdlib, Cstring;<br> IMPORT RT0, RTParams, RTDebug, RTHeapRep, RTCollectorSRC;<br>-IMPORT RTTypeSRC, RTSignal, ThreadF, RTHeapInfo, RTLinkerX, <br>+IMPORT RTTypeSRC, RTSignal, ThreadInternal, RTHeapInfo, RTLinkerX, <br>        RTIO, Word;<br> <br> VAR<br>@@ -46,7 +46,7 @@<br>     AddUnit (RTLinkerX.RTDebug_I3);<br>     AddUnit (RTLinkerX.RTError_I3);<br>     AddUnit (RTLinkerX.RTHeapRep_I3);<br>-    AddUnit (RTLinkerX.ThreadF_I3);<br>+    AddUnit (RTLinkerX.ThreadInternal_I3);<br>     AddUnit (RTLinkerX.RTHeapInfo_I3);<br>     AddUnit (RTLinkerX.RTIO_I3);<br>     AddUnit (RTLinkerX.RTCollectorSRC_I3);<br>@@ -55,7 +55,7 @@<br>     (* finally, initialize the runtime. *)<br>     RTSignal.InstallHandlers ();<br>     RTParams.Init ();<br>-    ThreadF.Init ();<br>+    ThreadInternal.Init ();<br>     RTHeapRep.Init ();<br>     RTDebug.Init ();<br>     RTHeapInfo.Init ();<br>Index: src/runtime/common/RTLinkerX.i3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/common/RTLinkerX.i3,v<br>retrieving revision 1.7<br>diff -u -w -r1.7 RTLinkerX.i3<br>--- src/runtime/common/RTLinkerX.i3    7 Apr 2008 17:58:30 -0000    1.7<br>+++ src/runtime/common/RTLinkerX.i3    13 Sep 2009 13:27:36 -0000<br>@@ -46,7 +46,7 @@<br> <*EXTERNAL*> PROCEDURE RTTypeSRC_I3       (mode: INTEGER): RT0.ModulePtr;<br> <*EXTERNAL*> PROCEDURE RTWeakRef_I3       (mode: INTEGER): RT0.ModulePtr;<br> <*EXTERNAL*> PROCEDURE RTutils_I3         (mode: INTEGER): RT0.ModulePtr;<br>-<*EXTERNAL*> PROCEDURE ThreadF_I3         (mode: INTEGER): RT0.ModulePtr;<br>+<*EXTERNAL*> PROCEDURE ThreadInternal_I3  (mode: INTEGER): RT0.ModulePtr;<br> <*EXTERNAL*> PROCEDURE Word_I3            (mode: INTEGER): RT0.ModulePtr;<br> <*EXTERNAL*> PROCEDURE RT0_M3             (mode: INTEGER): RT0.ModulePtr;<br> <*EXTERNAL*> PROCEDURE RTAllocStats_M3    (mode: INTEGER): RT0.ModulePtr;<br>Index: src/runtime/ex_frame/RTExFrame.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/ex_frame/RTExFrame.m3,v<br>retrieving revision 1.5<br>diff -u -w -r1.5 RTExFrame.m3<br>--- src/runtime/ex_frame/RTExFrame.m3    8 Sep 2009 05:54:56 -0000    1.5<br>+++ src/runtime/ex_frame/RTExFrame.m3    13 Sep 2009 13:27:36 -0000<br>@@ -4,7 +4,7 @@<br> <br> UNSAFE MODULE RTExFrame EXPORTS RTException, RTExFrame;<br> <br>-IMPORT RT0, RTError, RTIO, RTParams, RTOS, ThreadF;<br>+IMPORT RT0, RTError, RTIO, RTParams, RTOS, ThreadInternal;<br> IMPORT Thread, Csetjmp;<br> <br> VAR<br>@@ -16,7 +16,7 @@<br> <br> PROCEDURE Raise (VAR act: RT0.RaiseActivation) RAISES ANY =<br>   VAR<br>-    f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+    f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>     ex: ExceptionList;<br>   BEGIN<br>     IF DEBUG THEN<br>@@ -67,7 +67,7 @@<br> <br> PROCEDURE ResumeRaise (VAR a: RT0.RaiseActivation) RAISES ANY =<br>   VAR<br>-    f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+    f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>     ex: ExceptionList;<br>   BEGIN<br>     IF DEBUG THEN<br>@@ -99,7 +99,7 @@<br>           BadStack ();<br>       END;<br> <br>-      ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+      ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>       f := f.next;                         (* try the previous frame *)<br>     END;<br>   END ResumeRaise;<br>@@ -114,7 +114,7 @@<br>       RTIO.PutText ("\n");<br>       RTIO.Flush ();<br>     END;<br>-    ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+    ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>     p.info := a;                         (* copy the exception to the new frame *)<br>     Csetjmp.ulongjmp (p.jmpbuf, 1);      (* and jump... *)<br>     RAISE OUCH;<br>@@ -138,7 +138,7 @@<br>     cl.proc   := p.handler;<br>     cl.frame  := p.frame;<br>     <br>-    ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+    ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>     CallProc (LOOPHOLE (ADR (cl), FinallyProc), a);<br>   END InvokeFinallyHandler;<br> <br>@@ -159,7 +159,7 @@<br>       RTIO.PutText ("\n");<br>       RTIO.Flush ();<br>     END;<br>-    ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+    ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>     Thread.Release (p.mutex);            (* and release the lock *)<br>   END ReleaseLock;<br> <br>@@ -173,7 +173,7 @@<br> PROCEDURE SanityCheck () =<br>   CONST Min_SK = ORD (FIRST (ScopeKind));<br>   CONST Max_SK = ORD (LAST (ScopeKind));<br>-  VAR f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+  VAR f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>   VAR i: INTEGER;<br>   BEGIN<br>     WHILE (f # NIL) DO<br>@@ -184,7 +184,7 @@<br>   END SanityCheck;<br> <br> PROCEDURE DumpStack () =<br>-  VAR f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+  VAR f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>   BEGIN<br>     IF NOT DEBUG AND NOT dump_enabled THEN RETURN; END;<br> <br>Index: src/runtime/ex_frame/RTException.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/runtime/ex_frame/RTException.m3,v<br>retrieving revision 1.1.1.1<br>diff -u -w -r1.1.1.1 RTException.m3<br>--- src/runtime/ex_frame/RTException.m3    24 Jan 2001 12:24:27 -0000    1.1.1.1<br>+++ src/runtime/ex_frame/RTException.m3    13 Sep 2009 13:27:36 -0000<br>@@ -8,7 +8,7 @@<br> UNSAFE MODULE RTException EXPORTS RTException, RTExRep;<br> <br> IMPORT RT0, RTMisc, RTIO, RTParams, RTOS;<br>-IMPORT Thread, ThreadF, M3toC, Ctypes, Csetjmp;<br>+IMPORT Thread, ThreadInternal, M3toC, Ctypes, Csetjmp;<br> <br> VAR<br>   DEBUG := FALSE;<br>@@ -22,7 +22,7 @@<br> <br> PROCEDURE Raise (en: ExceptionPtr;  arg: ExceptionArg) RAISES ANY =<br>   VAR<br>-    f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+    f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>     ex: ExceptionList;<br>   BEGIN<br>     IF DEBUG THEN<br>@@ -69,7 +69,7 @@<br> <br> PROCEDURE ResumeRaise (en: ExceptionPtr;  arg: ExceptionArg) RAISES ANY =<br>   VAR<br>-    f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+    f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>     ex: ExceptionList;<br>   BEGIN<br>     IF DEBUG THEN<br>@@ -101,7 +101,7 @@<br>           BadStack ();<br>       END;<br> <br>-      ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+      ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>       f := f.next;                         (* try the previous frame *)<br>     END;<br>   END ResumeRaise;<br>@@ -117,7 +117,7 @@<br>       RTIO.PutText ("\n");<br>       RTIO.Flush ();<br>     END;<br>-    ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+    ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>     p.exception := en;                   (* record the exception *)<br>     p.arg := arg;                        (* and it argument *)<br>     Csetjmp.ulongjmp (p.jmpbuf, 1);      (* and jump... *)<br>@@ -143,7 +143,7 @@<br>     cl.proc   := p.handler;<br>     cl.frame  := p.frame;<br>     <br>-    ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+    ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>     CallProc (LOOPHOLE (ADR (cl), FinallyProc));<br>   END InvokeFinallyHandler;<br> <br>@@ -164,7 +164,7 @@<br>       RTIO.PutText ("\n");<br>       RTIO.Flush ();<br>     END;<br>-    ThreadF.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>+    ThreadInternal.SetCurrentHandlers (f.next); (* cut to the new handler *)<br>     Thread.Release (p.mutex);            (* and release the lock *)<br>   END ReleaseLock;<br> <br>@@ -188,7 +188,7 @@<br> PROCEDURE SanityCheck () =<br>   CONST Min_SK = ORD (FIRST (ScopeKind));<br>   CONST Max_SK = ORD (LAST (ScopeKind));<br>-  VAR f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+  VAR f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>   VAR i: INTEGER;<br>   BEGIN<br>     WHILE (f # NIL) DO<br>@@ -199,7 +199,7 @@<br>   END SanityCheck;<br> <br> PROCEDURE DumpStack () =<br>-  VAR f := LOOPHOLE(ThreadF.GetCurrentHandlers(), Frame);<br>+  VAR f := LOOPHOLE(ThreadInternal.GetCurrentHandlers(), Frame);<br>   BEGIN<br>     IF NOT DEBUG AND NOT dump_enabled THEN RETURN; END;<br> <br>Index: src/thread/Common/m3makefile<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/Common/m3makefile,v<br>retrieving revision 1.7<br>diff -u -w -r1.7 m3makefile<br>--- src/thread/Common/m3makefile    8 Sep 2009 16:41:37 -0000    1.7<br>+++ src/thread/Common/m3makefile    13 Sep 2009 13:27:36 -0000<br>@@ -8,10 +8,11 @@<br> %      modified on Tue Feb 11 15:07:32 PST 1992 by muller<br> <br> Interface ("Thread")<br>+Interface ("ThreadF")<br> Interface ("Scheduler")<br> if equal (OS_TYPE, "POSIX")<br>     Interface ("SchedulerPosix")<br> end<br> Interface ("MutexRep")<br> Interface ("ThreadEvent")<br>-interface ("ThreadUnsafe")<br>+interface ("ThreadInternal")<br>Index: src/thread/POSIX/ThreadPosix.i3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/POSIX/ThreadPosix.i3,v<br>retrieving revision 1.7<br>diff -u -w -r1.7 ThreadPosix.i3<br>--- src/thread/POSIX/ThreadPosix.i3    29 Jun 2009 19:20:47 -0000    1.7<br>+++ src/thread/POSIX/ThreadPosix.i3    13 Sep 2009 13:27:36 -0000<br>@@ -20,7 +20,7 @@<br> <br> <*EXTERNAL ThreadPosix__InitC*><br> PROCEDURE InitC();<br>-(* There is already ThreadF.Init exported by the same module that exports this<br>+(* There is already ThreadInternal.Init exported by the same module that exports this<br>    interface, so we chose an arbitrary different name here. *)<br> <br> END ThreadPosix.<br>Index: src/thread/POSIX/ThreadPosix.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/POSIX/ThreadPosix.m3,v<br>retrieving revision 1.45<br>diff -u -w -r1.45 ThreadPosix.m3<br>--- src/thread/POSIX/ThreadPosix.m3    13 Sep 2009 13:08:00 -0000    1.45<br>+++ src/thread/POSIX/ThreadPosix.m3    13 Sep 2009 13:27:36 -0000<br>@@ -10,7 +10,7 @@<br> (*|      modified On Mon Apr  5 14:51:30 PDT 1993 by muller  *)<br> (*|      modified on Mon Feb 22 10:08:49 PST 1993 by jdd     *)<br> <br>-UNSAFE MODULE ThreadPosix EXPORTS Thread, ThreadF, ThreadUnsafe,<br>+UNSAFE MODULE ThreadPosix EXPORTS Thread, ThreadF, ThreadInternal,<br> Scheduler, SchedulerPosix, RTOS, RTHooks, ThreadPosix;<br> <br> IMPORT Cerrno, Cstring, FloatMode, MutexRep, RTHeapRep, RTCollectorSRC,<br>@@ -1461,7 +1461,7 @@<br>     perfOn := RTPerfTool.Send (perfW, ADR (e), EventSize);<br>   END PerfRunning;<br> <br>-(*--------------------------------------------------------- ThreadF hooks ---*)<br>+(*--------------------------------------------------------- ThreadInternal hooks ---*)<br> <br> VAR<br>   hooks: Hooks := NIL;<br>@@ -1485,6 +1485,8 @@<br>     RETURN oldHooks;<br>   END RegisterHooks;<br> <br>+(*--------------------------------------------------------- ThreadF ---*)<br>+<br> PROCEDURE MyId(): Id RAISES {}=<br>   BEGIN<br>     RETURN self.id;<br>Index: src/thread/POSIX/m3makefile<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/POSIX/m3makefile,v<br>retrieving revision 1.6<br>diff -u -w -r1.6 m3makefile<br>--- src/thread/POSIX/m3makefile    22 Mar 2009 09:43:13 -0000    1.6<br>+++ src/thread/POSIX/m3makefile    13 Sep 2009 13:27:36 -0000<br>@@ -7,7 +7,6 @@<br> %      modified on Tue May  4 10:18:56 PDT 1993 by mjordan<br> %      modified on Tue Feb 11 15:07:32 PST 1992 by muller<br> <br>-Interface ("ThreadF")<br> module ("ThreadPosix")<br> c_source ("ThreadPosixC")<br> h_source ("ThreadPosix")<br>Index: src/thread/PTHREAD/ThreadPThread.m3<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadPThread.m3,v<br>retrieving revision 1.139<br>diff -u -w -r1.139 ThreadPThread.m3<br>--- src/thread/PTHREAD/ThreadPThread.m3    13 Sep 2009 13:08:01 -0000    1.139<br>+++ src/thread/PTHREAD/ThreadPThread.m3    13 Sep 2009 13:27:36 -0000<br>@@ -2,7 +2,7 @@<br> (* All rights reserved.                                            *)<br> (* See the file COPYRIGHT-PURDUE for a full description.           *)<br> <br>-UNSAFE MODULE ThreadPThread EXPORTS Thread, ThreadF, ThreadUnsafe,<br>+UNSAFE MODULE ThreadPThread EXPORTS Thread, ThreadF, ThreadInternal,<br> Scheduler, SchedulerPosix, RTOS, RTHooks, ThreadPThread;<br> <br> IMPORT Cerrno, FloatMode, MutexRep,<br>@@ -1316,7 +1316,6 @@<br> <br> VAR<br>   perfW : RTPerfTool.Handle;<br>-  perfOn: BOOLEAN := FALSE;         (* LL = perfMu *)<br> <br> PROCEDURE PerfStart () =<br>   BEGIN<br>Index: src/thread/PTHREAD/m3makefile<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/m3makefile,v<br>retrieving revision 1.13<br>diff -u -w -r1.13 m3makefile<br>--- src/thread/PTHREAD/m3makefile    29 Apr 2009 21:01:14 -0000    1.13<br>+++ src/thread/PTHREAD/m3makefile    13 Sep 2009 13:27:36 -0000<br>@@ -7,6 +7,5 @@<br> %      modified on Tue May  4 10:18:56 PDT 1993 by mjordan<br> %      modified on Tue Feb 11 15:07:32 PST 1992 by muller<br> <br>-Interface ("ThreadF")<br> module ("ThreadPThread")<br> c_source ("ThreadPThreadC")<br>Index: src/thread/WIN32/m3makefile<br>===================================================================<br>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/WIN32/m3makefile,v<br>retrieving revision 1.13<br>diff -u -w -r1.13 m3makefile<br>--- src/thread/WIN32/m3makefile    21 Apr 2009 11:02:11 -0000    1.13<br>+++ src/thread/WIN32/m3makefile    13 Sep 2009 13:27:36 -0000<br>@@ -2,7 +2,6 @@<br> % All rights reserved.<br> % See the file COPYRIGHT for a full description.<br> <br>-Interface ("ThreadF")<br> Interface ("ThreadContext")<br> module ("ThreadWin32")<br> interface("ThreadInternal")<br><br><br><br><br><br><br><br>> Date: Sun, 13 Sep 2009 15:36:43 +0000<br>> To: m3commit@elegosoft.com<br>> From: jkrell@elego.de<br>> Subject: [M3commit] CVS Update: cm3<br>> <br>> CVSROOT:   /usr/cvs<br>> Changes by:      jkrell@birch.   09/09/13 15:36:43<br>> <br>> Modified files:<br>>    cm3/m3-libs/m3core/src/float/DS3100/: FloatMode.m3 <br>>       cm3/m3-libs/m3core/src/float/IRIX5/: FloatMode.m3 <br>>        cm3/m3-libs/m3core/src/float/VAX/: FloatMode.m3 <br>>  cm3/m3-libs/m3core/src/runtime/NT386/: RTSignal.m3 <br>>       cm3/m3-libs/m3core/src/runtime/WIN32/: RTOS.m3 <br>>   cm3/m3-libs/m3core/src/runtime/common/: RTAllocator.m3 <br>>                                           RTCollector.m3 <br>>                                           RTHeapStats.m3 <br>>                                           RTLinker.m3 RTLinkerX.i3 <br>>         cm3/m3-libs/m3core/src/runtime/ex_frame/: RTExFrame.m3 <br>>                                             RTException.m3 <br>>         cm3/m3-libs/m3core/src/thread/Common/: m3makefile <br>>        cm3/m3-libs/m3core/src/thread/POSIX/: ThreadPosix.i3 <br>>                                           ThreadPosix.m3 m3makefile <br>>  cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadPThread.m3 <br>>                                                 m3makefile <br>>       cm3/m3-libs/m3core/src/thread/WIN32/: m3makefile <br>> Added files:<br>>      cm3/m3-libs/m3core/src/thread/Common/: ThreadF.i3 <br>>                                               ThreadInternal.i3 <br>> Removed files:<br>>    cm3/m3-libs/m3core/src/thread/Common/: ThreadUnsafe.i3 <br>>   cm3/m3-libs/m3core/src/thread/WIN32/: ThreadInternal.i3 <br>> <br>> Log message:<br>>        move ThreadUnsafe.i3 to ThreadInternal.i3<br>>         move most of ThreadF.i3 to ThreadInternal.i3<br>>      ThreadF is safe and public, and small.<br>>    ThreadInternal is not safe nor public.<br>>    As well between ThreadF.i3 and ThreadInternal.i3 we need only have one common copy.<br>>       Three ThreadF.i3s replaced by one.<br>>        A ThreadInternal.i3 and ThreadUnsafe.i3 replaced by one ThreadInternal.i3.<br>>        ThreadF.i3 is entirely shared.<br>>    ThreadInternal.i3 exposes a little extra that is present in all three but only<br>>    needs to be exposed for Win32 (and then, only if Cygwin uses Win32 threads).<br>>      <br>>  (deletes deferred because of CVS wierdness)<br>> <br></body>
</html>