<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
I find it too painful to find diffs given a checkin mail, so here:<BR>
 <BR>
Index: src/thread/POSIX/ThreadF.i3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/POSIX/ThreadF.i3,v<BR>retrieving revision 1.15<BR>diff -u -r1.15 ThreadF.i3<BR>--- src/thread/POSIX/ThreadF.i3 8 Sep 2009 16:41:38 -0000 1.15<BR>+++ src/thread/POSIX/ThreadF.i3 13 Sep 2009 13:05:22 -0000<BR>@@ -66,13 +66,6 @@<BR> PROCEDURE MyId(): Id RAISES {};<BR> (* return Id of caller *)<BR> <BR>-(*------------------------------------------------------------ preemption ---*)<BR>-<BR>-PROCEDURE SetSwitchingInterval (usec: CARDINAL);<BR>-(* Sets the time between thread preemptions to 'usec' microseconds.<BR>-   Note that most Unix systems dont guarantee much if any precision<BR>-   on timer interrupts.  The default value is 100 milliseconds. *)<BR>-<BR> (*---------------------------------------------------- exception delivery ---*)<BR> <BR> PROCEDURE GetCurrentHandlers(): ADDRESS;<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.44<BR>diff -u -r1.44 ThreadPosix.m3<BR>--- src/thread/POSIX/ThreadPosix.m3 12 Sep 2009 17:55:32 -0000 1.44<BR>+++ src/thread/POSIX/ThreadPosix.m3 13 Sep 2009 13:05:22 -0000<BR>@@ -767,15 +767,6 @@<BR>     IF inCritical = 0 AND heapState.inCritical = 0 THEN InternalYield () END;<BR>   END switch_thread;<BR> <BR>-PROCEDURE SetSwitchingInterval (usec: CARDINAL) =<BR>-  BEGIN<BR>-    INC (inCritical);<BR>-      selected_interval.tv_sec  := usec DIV 1000000;<BR>-      selected_interval.tv_usec := usec MOD 1000000;<BR>-    DEC (inCritical);<BR>-    IF multipleThreads THEN StartSwitching () END;<BR>-  END SetSwitchingInterval;<BR>-<BR> (*------------------------------------------------------------- scheduler ---*)<BR> <BR> PROCEDURE CanRun (t: T) = <BR>Index: src/thread/PTHREAD/ThreadF.i3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/PTHREAD/ThreadF.i3,v<BR>retrieving revision 1.17<BR>diff -u -r1.17 ThreadF.i3<BR>--- src/thread/PTHREAD/ThreadF.i3 8 Sep 2009 16:41:38 -0000 1.17<BR>+++ src/thread/PTHREAD/ThreadF.i3 13 Sep 2009 13:05:22 -0000<BR>@@ -24,11 +24,6 @@<BR>    of the stack.  All other threads must be suspended.  ProcessStacks<BR>    exists solely for the garbage collector.  *)<BR> <BR>-PROCEDURE ProcessEachStack (p: PROCEDURE (start, stop: ADDRESS));<BR>-(* Apply p to each thread stack, with [start..stop) being the limits<BR>-   of the stack.  Each thread is suspended individually.  ProcessEachStack<BR>-   exists solely for the garbage collector.  *)<BR>-<BR> (*------------------------------------------------ floating point support ---*)<BR> <BR> (* access to the saved floating point state for the current thread. *)<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.138<BR>diff -u -r1.138 ThreadPThread.m3<BR>--- src/thread/PTHREAD/ThreadPThread.m3 13 Sep 2009 04:55:33 -0000 1.138<BR>+++ src/thread/PTHREAD/ThreadPThread.m3 13 Sep 2009 13:05:22 -0000<BR>@@ -995,55 +995,6 @@<BR>     END;<BR>   END ProcessStacks;<BR> <BR>-PROCEDURE ProcessEachStack (p: PROCEDURE (start, stop: ADDRESS)) =<BR>-  (* LL=0 *)<BR>-  VAR<BR>-    me := GetActivation();<BR>-    act: Activation;<BR>-    acks: int;<BR>-  BEGIN<BR>-    WITH r = pthread_mutex_lock_active() DO <*ASSERT r=0*> END;<BR>-<BR>-    ProcessMe(me, p);<BR>-<BR>-    act := me.next;<BR>-    WHILE act # me DO<BR>-      (* stop *)<BR>-      LOOP<BR>-        IF StopThread(act) THEN EXIT END;<BR>-        IF SignalThread(act, ActState.Stopping) THEN<BR>-          WITH r = sem_getvalue(acks) DO <*ASSERT r=0*> END;<BR>-          IF acks > 0 THEN<BR>-            WHILE sem_wait() # 0 DO<BR>-              <*ASSERT Cerrno.GetErrno() = Uerror.EINTR*><BR>-            END;<BR>-            EXIT;<BR>-          END;<BR>-        END;<BR>-        CommonSleep();<BR>-      END;<BR>-      (* process *)<BR>-      ProcessOther(act, p);<BR>-      (* start *)<BR>-      LOOP<BR>-        IF StartThread(act) THEN EXIT END;<BR>-        IF SignalThread(act, ActState.Starting) THEN<BR>-          WITH r = sem_getvalue(acks) DO <*ASSERT r=0*> END;<BR>-          IF acks > 0 THEN<BR>-            WHILE sem_wait() # 0 DO<BR>-              <*ASSERT Cerrno.GetErrno() = Uerror.EINTR*><BR>-            END;<BR>-            EXIT;<BR>-          END;<BR>-        END;<BR>-        CommonSleep();<BR>-      END;<BR>-      act := act.next;<BR>-    END;<BR>-<BR>-    WITH r = pthread_mutex_unlock_active() DO <*ASSERT r=0*> END;<BR>-  END ProcessEachStack;<BR>-<BR> PROCEDURE ProcessMe (me: Activation;  p: PROCEDURE (start, stop: ADDRESS)) =<BR>   (* LL=activeMu *)<BR>   VAR<BR>Index: src/thread/WIN32/ThreadF.i3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/WIN32/ThreadF.i3,v<BR>retrieving revision 1.17<BR>diff -u -r1.17 ThreadF.i3<BR>--- src/thread/WIN32/ThreadF.i3 8 Sep 2009 16:41:39 -0000 1.17<BR>+++ src/thread/WIN32/ThreadF.i3 13 Sep 2009 13:05:22 -0000<BR>@@ -26,12 +26,6 @@<BR> (* Feature:  Windows threads not created by Thread.Fork are not suspended<BR>     or resumed, and their stacks are not processed. *)<BR> <BR>-(*------------------------------------------------------------ preemption ---*)<BR>-<BR>-PROCEDURE SetSwitchingInterval (usec: CARDINAL);<BR>-(* Sets the time between thread preemptions to 'usec' microseconds.<BR>-   This procedure is a no-op on Windows/NT. *)<BR>-<BR> (*------------------------------------------------------------ thread IDs ---*)<BR> <BR> TYPE<BR>Index: src/thread/WIN32/ThreadWin32.m3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-libs/m3core/src/thread/WIN32/ThreadWin32.m3,v<BR>retrieving revision 1.47<BR>diff -u -r1.47 ThreadWin32.m3<BR>--- src/thread/WIN32/ThreadWin32.m3 8 Sep 2009 16:41:39 -0000 1.47<BR>+++ src/thread/WIN32/ThreadWin32.m3 13 Sep 2009 13:05:22 -0000<BR>@@ -695,12 +695,6 @@<BR>     RETURN res;<BR>   END AlertJoin;<BR> <BR>-(*------------------------------------------------ timer-based preemption ---*)<BR>-<BR>-PROCEDURE SetSwitchingInterval (<*UNUSED*> usec: CARDINAL) =<BR>-  BEGIN<BR>-  END SetSwitchingInterval;<BR>-<BR> (*---------------------------------------------------- Scheduling support ---*)<BR> <BR> PROCEDURE Pause(n: LONGREAL) =<BR><BR><BR><BR><BR><BR><BR> <BR>> Date: Sun, 13 Sep 2009 15:08:01 +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:08:01<BR>> <BR>> Modified files:<BR>> cm3/m3-libs/m3core/src/thread/POSIX/: ThreadF.i3 ThreadPosix.m3 <BR>> cm3/m3-libs/m3core/src/thread/PTHREAD/: ThreadF.i3 <BR>> ThreadPThread.m3 <BR>> cm3/m3-libs/m3core/src/thread/WIN32/: ThreadF.i3 ThreadWin32.m3 <BR>> <BR>> Log message:<BR>> remove SetSwitchingInterval<BR>> It didn't do anything on NT and wasn't declared for pthread.<BR>> For greater source compat we could put it in and have it do<BR>> nothing for NT and pthread, but we are already getting on<BR>> without it in pthread.<BR>> <BR>> remove ProcessEachStack<BR>> It is only in pthread and never used.<BR>> <BR></body>
</html>