<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><div>Every time I exit formsedit on MacOS X:</div><div><br></div><div><br></div><div>(gdb) run</div><div>Starting program: /cm3/bin/formsedit </div><div>Reading symbols for shared libraries +++++++++++++++++++++..... done</div><div><br></div><div><br></div><div>***</div><div>*** runtime error:</div><div>***    <*ASSERT*> failed.</div><div>***    file "../src/thread/PTHREAD/ThreadPThread.m3", line 216</div><div>***</div><div><br></div><div><br></div><div>Program received signal SIGABRT, Aborted.</div><div>0x940181ae in semaphore_wait_signal_trap ()</div><div>(gdb) bt</div><div>#0  0x940181ae in semaphore_wait_signal_trap ()</div><div>#1  0x9404a1c6 in _pthread_cond_wait ()</div><div>#2  0x9408f449 in pthread_cond_wait ()</div><div>#3  0x0093aaee in ThreadPThread__pthread_cond_wait (i=0x1400830, j=0x1400800) at ../src/thread/PTHREAD/ThreadPThreadC.c:459</div><div>#4  0x00935ade in ThreadPThread__XWait (self=0x14007a0, m=0x7e0084, c=0x1543644, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:239</div><div>#5  0x00937a54 in ThreadPThread__XJoin (self=0x14007a0, t=0x1543628, alertable=0 '\0') at ../src/thread/PTHREAD/ThreadPThread.m3:581</div><div>#6  0x00937b5c in Thread__Join (t=0x1543628) at ../src/thread/PTHREAD/ThreadPThread.m3:593</div><div>#7  0x00014392 in FormsEdit__main () at ../src/FormsEdit.m3:52</div><div>#8  0x0001451d in FormsEdit_M3 (mode=1) at ../src/FormsEdit.m3:62</div><div>#9  0x00927175 in RTLinker__RunMainBody (m=0x15c40) at ../src/runtime/common/RTLinker.m3:408</div><div>#10 0x00926601 in RTLinker__AddUnitI (m=0x15c40) at ../src/runtime/common/RTLinker.m3:115</div><div>#11 0x0092667c in RTLinker__AddUnit (b=0x143a8) at ../src/runtime/common/RTLinker.m3:124</div><div><br></div><div><br></div><div>    WITH r = pthread_mutex_lock(self.mutex) DO <*ASSERT r=0*> END;</div><div>    LOOP</div><div>      IF alertable AND self.alerted THEN</div><div>        self.alerted := FALSE;</div><div>        <*ASSERT self.waitingOn = c.mutex*></div><div><br></div><div>NOTE: The Modula-3 assert does not break into the debugger. There is a later problem in <span style="font-size: 12pt; ">pthread_cond_wait</span><span style="font-size: 12pt; ">  that does. This is with the gcc backend.</span></div><div><span style="font-size: 12pt; "><br></span></div><div><span style="font-size: 12pt; "><br></span></div><div><span style="font-size: 12pt; "> - Jay</span></div><div><span style="font-size: 12pt; "><br></span></div>                                          </div></body>
</html>