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