[M3devel] [M3commit] CVS Update: cm3
Tony Hosking
hosking at cs.purdue.edu
Fri Jan 14 17:08:54 CET 2011
Can you try to get the crash with @M3paranoidgc and report the result?
It would be good to capture any abort that occurs in the debugger and show the traceback.
Antony Hosking | Associate Professor | Computer Science | Purdue University
305 N. University Street | West Lafayette | IN 47907 | USA
Office +1 765 494 6001 | Mobile +1 765 427 5484
On Jan 14, 2011, at 9:21 AM, Mika Nystrom wrote:
> Tony,
>
> Yes on closer reflection I agree with your statement that it isn't
> surprising it runs slowly. What I have realized is that the simplicity of
> the user-threads implementation makes that implementation much more fair
> than the pthreads implementation appears to be. (Which is of course not
> a real problem but something that shows up in synthetic applications like
> the thread tester.) I added code to print the youngest and median thread
> in each of the three categories and I'd agree that what I see is about
> what you'd expect. The threads also have very different workloads, so under
> pthreads it's not surprising that some of them make progress faster
> than others.
>
> Here's the typical output now (99 threads, pthreads):
>
> [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest
> Writing file...done
> Creating reader threads...done
> Creating forker threads...done
> Creating allocator threads...done
> running...printing oldest/median age/newest
> laziest thread is 1295014272/0/0 seconds behind (read 1295014272/1295014272/0 fork 0/0/0 alloc 0/0/0)
> laziest thread is 1295014282/0/0 seconds behind (read 1295014282/7/0 fork 0/0/0 alloc 0/0/0)
> laziest thread is 1295014292/0/0 seconds behind (read 1295014292/6/0 fork 0/0/0 alloc 0/0/0)
> laziest thread is 35/1/0 seconds behind (read 35/9/1 fork 1/1/1 alloc 1/1/0)
> ...
>
> With PM3 user threads, the switching is probably just round-robin, and you get:
>
> (110)rover:~/cm3-writable/cm3/m3-libs/m3core/tests/thread/src>../FreeBSD4/threadtest
> Writing file...done
> Creating reader threads...done
> Creating forker threads...done
> Creating allocator threads...done
> running...printing oldest/median age/newest
> laziest thread is 9/4/0 seconds behind (read 9/7/4 fork 4/4/4 alloc 4/2/0)
> laziest thread is 8/4/0 seconds behind (read 8/7/4 fork 4/4/4 alloc 4/2/0)
> laziest thread is 8/4/0 seconds behind (read 8/6/4 fork 4/4/4 alloc 4/2/0)
> ...
>
> I only rarely see the assertion failure from the C code. I have not been able
> to reproduce it with @M3noincremental (yet). However I have seen a "more serious"
> assertion failure:
>
> [HAL:tests/thread/src] mika% ../I386_DARWIN/threadtest
> Writing file...done
> Creating reader threads...done
> Creating forker threads...done
> Creating allocator threads...done
> running...printing oldest/median age/newest
>
>
> ***
> *** runtime error:
> *** Thread client error: 22
> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 120
> ***
>
>
>
> ***
> *** runtime error:
> *** An array subscript was out of range.
> *** file "../src/runtime/common/RTCollector.m3", line 418
> ***
>
> Abort
>
> This happened with n = 9 threads.
>
> I tried it again in the debugger and only got the assertion for RTCollector.
>
> Here's the traceback for the crashing thread:
>
> Thread 10 (process 2811):
> #0 0x971784fe in __semwait_signal_nocancel ()
> #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 ()
> #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 ()
> #3 0x972149c8 in abort ()
> #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21
> #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20
> #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65
> #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118
> #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40
> #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79
> #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39
> #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25
> #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85
> #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47
> #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25
> #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85
> #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111
> #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393
> #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418
> #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202
> #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62
> #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57
> #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57
> #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47
> #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091
> #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064
> #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885
> #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720
> #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654
> #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365
> #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294
> #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143
> #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130
> #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #35 0x9713885d in _pthread_start ()
> #36 0x971386e2 in thread_start ()
>
>
> Complete traceback attached below. Again, I modified the program from
> tests/thread/src/Main.m3 to read "nOver3 = 3" to get this behavior.
>
> Mika
>
>
>
>
> Tony Hosking writes:
>> I'm not surprised it runs slowly. There is a lot of contention for =
>> allocation of pages to satisfy all the allocation requests. Plus GC I =
>> expect. Can you try running with @M3noincremental and see how it goes? =
>> Weird about the assertion failure. I think we should be checking for =
>> EBUSY.
>>
>> On Jan 13, 2011, at 12:53 PM, Mika Nystrom wrote:
>>
>>> Tony, no, the test program=20
>>> =20
>>> (1) printed the assertion failure.
>>> =20
>>> (2) did NOT deadlock
>>> =20
>>> (3) ran very very slowly (at least some threads did)
>>> =20
>>> (4) kept running after printing the assertion failure and exited =
>> normally
>>> =20
>>> The actual application may have behaved differently but there seems to =
>> be
>>> enough here to constitute one or two bugs...?
>>> =20
>>> My test program seems very effective, by the way. It has had =
>> objections
>>> to every version you've checked in so far... :-)
>>> =20
>>> Mika
>>> =20
>
>
> Thread 10 (process 2811):
> #0 0x971784fe in __semwait_signal_nocancel ()
> #1 0x971783e2 in nanosleep$NOCANCEL$UNIX2003 ()
> #2 0x971f32aa in usleep$NOCANCEL$UNIX2003 ()
> #3 0x972149c8 in abort ()
> #4 0x000457a4 in Cstdlib__abort () at ../src/C/Common/CstdlibC.c:21
> #5 0x0003de10 in RTOS__Crash () at ../src/runtime/POSIX/RTOS.m3:20
> #6 0x00037ea4 in RTProcess__Crash (msg=0x0) at ../src/runtime/common/RTProcess.m3:65
> #7 0x000362ed in RTError__EndError (crash=1 '\001') at ../src/runtime/common/RTError.m3:118
> #8 0x00036005 in RTError__MsgS (file=0x6baa9, line=418, msgA=0x6c748, msgB=0x69890, msgC=0x6c748) at ../src/runtime/common/RTError.m3:40
> #9 0x000366da in RTException__Crash (a=0xb0490a64, raises=0 '\0', rte=0x69740) at ../src/runtime/common/RTException.m3:79
> #10 0x00036432 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:39
> #11 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25
> #12 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85
> #13 0x000364c3 in RTException__DefaultBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:47
> #14 0x0003638e in RTException__InvokeBackstop (a=0xb0490a64, raises=0 '\0') at ../src/runtime/common/RTException.m3:25
> #15 0x0003e5e5 in RTException__Raise (act=0xb0490a64) at ../src/runtime/ex_frame/RTExFrame.m3:85
> #16 0x0002655a in RTHooks__ReportFault (module=0x7b200, info=13378) at ../src/runtime/common/RTHooks.m3:111
> #17 0x00033f2f in _m3_fault (arg=13378) at ../src/runtime/common/RTCollector.m3:393
> #18 0x0002afb0 in RTCollector__Move (self=0x213000c, cp=0x2030014) at ../src/runtime/common/RTCollector.m3:418
> #19 0x0002987f in RTHeapMap__Walk (x=0x2030014, pc=0x66068, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:202
> #20 0x0002902a in RTHeapMap__DoWalkRef (t=0x782f4, a=0x2030014, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:62
> #21 0x00029001 in RTHeapMap__DoWalkRef (t=0x786f4, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57
> #22 0x00029001 in RTHeapMap__DoWalkRef (t=0x78808, a=0x203000c, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:57
> #23 0x00028fb4 in RTHeapMap__WalkRef (h=0x2030008, v=0x213000c) at ../src/runtime/common/RTHeapMap.m3:47
> #24 0x0002d3ab in RTCollector__CleanBetween (h=0x2030008, he=0x2040000, clean=0 '\0') at ../src/runtime/common/RTCollector.m3:1091
> #25 0x0002d1e2 in RTCollector__CleanPage (page=0x2030000) at ../src/runtime/common/RTCollector.m3:1064
> #26 0x0002c8f9 in RTCollector__CollectSomeInStateZero () at ../src/runtime/common/RTCollector.m3:885
> #27 0x0002c012 in RTCollector__CollectSome () at ../src/runtime/common/RTCollector.m3:720
> #28 0x0002bc54 in RTHeapRep__CollectEnough () at ../src/runtime/common/RTCollector.m3:654
> #29 0x00027fd9 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04794) at ../src/runtime/common/RTAllocator.m3:365
> #30 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:294
> #31 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb0490e90) at ../src/runtime/common/RTAllocator.m3:143
> #32 0x00004001 in Main__AApply (cl=0xb054bc) at ../src/Main.m3:130
> #33 0x0004145c in ThreadPThread__RunThread (me=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #34 0x0004118b in ThreadPThread__ThreadBase (param=0xa04750) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #35 0x9713885d in _pthread_start ()
> #36 0x971386e2 in thread_start ()
>
> Thread 9 (process 2811):
> #0 0x9710b142 in semaphore_wait_signal_trap ()
> #1 0x97110c46 in pthread_mutex_lock ()
> #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462
> #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332
> #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa046e4) at ../src/runtime/common/RTAllocator.m3:363
> #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:294
> #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb040ee90) at ../src/runtime/common/RTAllocator.m3:143
> #7 0x00004001 in Main__AApply (cl=0xb05484) at ../src/Main.m3:130
> #8 0x0004145c in ThreadPThread__RunThread (me=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa046a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #10 0x9713885d in _pthread_start ()
> #11 0x971386e2 in thread_start ()
>
> Thread 8 (process 2811):
> #0 0x9710b142 in semaphore_wait_signal_trap ()
> #1 0x97110c46 in pthread_mutex_lock ()
> #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462
> #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332
> #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=4108, dataAlignment=4, thread=0xa04634) at ../src/runtime/common/RTAllocator.m3:363
> #5 0x00027a2f in RTAllocator__GetOpenArray (def=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:294
> #6 0x00026eba in RTHooks__AllocateOpenArray (defn=0x7a0b0, s=0xb038ce90) at ../src/runtime/common/RTAllocator.m3:143
> #7 0x00004001 in Main__AApply (cl=0xb0544c) at ../src/Main.m3:130
> #8 0x0004145c in ThreadPThread__RunThread (me=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa045f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #10 0x9713885d in _pthread_start ()
> #11 0x971386e2 in thread_start ()
>
> Thread 7 (process 2811):
> #0 0x9716c1d6 in __wait4 ()
> #1 0x9716c1c9 in waitpid$UNIX2003 ()
> #2 0x000453e7 in Uexec__waitpid (i=2843, j=0xb030ad8c, k=0) at ../src/unix/Common/Uexec.c:67
> #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2843, status=0xb030ad8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657
> #4 0x00009928 in Process__Wait (p=0xb9000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275
> #5 0x00003e92 in Main__FApply (cl=0xb05414) at ../src/Main.m3:117
> #6 0x0004145c in ThreadPThread__RunThread (me=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa04590) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #8 0x9713885d in _pthread_start ()
> #9 0x971386e2 in thread_start ()
>
> Thread 6 (process 2811):
> #0 0x9716c1d6 in __wait4 ()
> #1 0x9716c1c9 in waitpid$UNIX2003 ()
> #2 0x000453e7 in Uexec__waitpid (i=2842, j=0xb0288d8c, k=0) at ../src/unix/Common/Uexec.c:67
> #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2842, status=0xb0288d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657
> #4 0x00009928 in Process__Wait (p=0xc1000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275
> #5 0x00003e92 in Main__FApply (cl=0xb053dc) at ../src/Main.m3:117
> #6 0x0004145c in ThreadPThread__RunThread (me=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa043a0) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #8 0x9713885d in _pthread_start ()
> #9 0x971386e2 in thread_start ()
>
> Thread 5 (process 2811):
> #0 0x9716c1d6 in __wait4 ()
> #1 0x9716c1c9 in waitpid$UNIX2003 ()
> #2 0x000453e7 in Uexec__waitpid (i=2841, j=0xb0206d8c, k=0) at ../src/unix/Common/Uexec.c:67
> #3 0x00042252 in SchedulerPosix__WaitProcess (pid=2841, status=0xb0206d8c) at ../src/thread/PTHREAD/ThreadPThread.m3:657
> #4 0x00009928 in Process__Wait (p=0xb7000c) at ../src/os/POSIX/ProcessPosixCommon.m3:275
> #5 0x00003e92 in Main__FApply (cl=0xb053a4) at ../src/Main.m3:117
> #6 0x0004145c in ThreadPThread__RunThread (me=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #7 0x0004118b in ThreadPThread__ThreadBase (param=0xa042f0) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #8 0x9713885d in _pthread_start ()
> #9 0x971386e2 in thread_start ()
>
> Thread 4 (process 2811):
> #0 0x9710b142 in semaphore_wait_signal_trap ()
> #1 0x97110c46 in pthread_mutex_lock ()
> #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462
> #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332
> #4 0x0003f6da in ThreadPThread__InitMutex (m=0x2120010, root=0x212000c, Clean=0x3f5aa) at ../src/thread/PTHREAD/ThreadPThread.m3:101
> #5 0x0003f783 in ThreadPThread__LockMutex (m=0x212000c) at ../src/thread/PTHREAD/ThreadPThread.m3:117
> #6 0x0000a323 in Rd__GetChar (rd=0x212000c) at ../src/rw/Rd.m3:33
> #7 0x00003c2e in Main__RApply (cl=0xb0536c) at ../src/Main.m3:95
> #8 0x0004145c in ThreadPThread__RunThread (me=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #9 0x0004118b in ThreadPThread__ThreadBase (param=0xa04240) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #10 0x9713885d in _pthread_start ()
> #11 0x971386e2 in thread_start ()
>
> Thread 3 (process 2811):
> #0 ThreadPThread__LockMutex (m=0xd0000c) at ../src/thread/PTHREAD/ThreadPThread.m3:122
> #1 0x0000a323 in Rd__GetChar (rd=0xd0000c) at ../src/rw/Rd.m3:33
> #2 0x00003c2e in Main__RApply (cl=0xb05334) at ../src/Main.m3:95
> #3 0x0004145c in ThreadPThread__RunThread (me=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #4 0x0004118b in ThreadPThread__ThreadBase (param=0xa04190) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #5 0x9713885d in _pthread_start ()
> #6 0x971386e2 in thread_start ()
>
> Thread 2 (process 2811):
> #0 0x9710b142 in semaphore_wait_signal_trap ()
> #1 0x97110c46 in pthread_mutex_lock ()
> #2 0x00044cf3 in ThreadPThread__pthread_mutex_lock (i=0x7e4e0) at ../src/thread/PTHREAD/ThreadPThreadC.c:462
> #3 0x00043f8e in RTOS__LockHeap () at ../src/thread/PTHREAD/ThreadPThread.m3:1332
> #4 0x00027fd4 in RTAllocator__AllocTraced (dataSize=12, dataAlignment=4, thread=0xa040a4) at ../src/runtime/common/RTAllocator.m3:363
> #5 0x00027387 in RTAllocator__GetTracedObj (def=0x77654) at ../src/runtime/common/RTAllocator.m3:224
> #6 0x00026e20 in RTHooks__AllocateTracedObj (defn=0x77654) at ../src/runtime/common/RTAllocator.m3:122
> #7 0x00005239 in FilePosix__New (fd=5, ds=1) at ../src/os/POSIX/FilePosix.m3:63
> #8 0x000067df in FS__OpenFileReadonly (pn=0x64324) at ../src/os/POSIX/FSPosix.m3:182
> #9 0x000103e8 in FileRd__Open (p=0x64324) at ../src/rw/FileRd.m3:16
> #10 0x00003b9b in Main__RApply (cl=0xb052fc) at ../src/Main.m3:92
> #11 0x0004145c in ThreadPThread__RunThread (me=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:450
> #12 0x0004118b in ThreadPThread__ThreadBase (param=0xa04060) at ../src/thread/PTHREAD/ThreadPThread.m3:422
> #13 0x9713885d in _pthread_start ()
> #14 0x971386e2 in thread_start ()
>
> Thread 1 (process 2811):
> #0 0x971390a6 in __semwait_signal ()
> #1 0x97138d62 in _pthread_cond_wait ()
> #2 0x971388b5 in pthread_cond_timedwait$UNIX2003 ()
> #3 0x00044c7c in ThreadPThread__pthread_cond_timedwait (cond=0xa03ca0, mutex=0xa03c70, m3timeout=1295014649.3298399) at ../src/thread/PTHREAD/ThreadPThreadC.c:430
> #4 0x00041ca3 in ThreadPThread__XPause (self=0xa03c10, n=10, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:552
> #5 0x00041d73 in Thread__Pause (n=10) at ../src/thread/PTHREAD/ThreadPThread.m3:567
> #6 0x000046e2 in Main_M3 (mode=1) at ../src/Main.m3:214
> #7 0x00035549 in RTLinker__RunMainBody (m=0x76920) at ../src/runtime/common/RTLinker.m3:406
> #8 0x000349a5 in RTLinker__AddUnitI (m=0x76920) at ../src/runtime/common/RTLinker.m3:113
> #9 0x00034a26 in RTLinker__AddUnit (b=0x455c) at ../src/runtime/common/RTLinker.m3:122
> #10 0x000039fc in main (argc=1, argv=0xbffff5cc, envp=0xbffff5d4) at _m3main.c:16
More information about the M3devel
mailing list