[M3devel] pthreads problem, LINUXLIBC6, RHEL 5.8
Dragiša Durić
dragisha at m3w.org
Wed May 23 12:03:37 CEST 2012
Return code in question is 22, EINVAL, code is
WITH r = pthread_cond_timedwait(self.cond, self.mutex, until) DO
IF r = Uerror.ETIMEDOUT THEN
WITH r = pthread_mutex_unlock(self.mutex) DO <*ASSERT r=0*> END;
IF perfOn THEN PerfRunning() END;
RETURN;
END;
IF r # 0 THEN
RTIO.PutText("r="); RTIO.PutInt(r); RTIO.PutText("\n");
RTIO.Flush();
END;
<*ASSERT r=0*> --- former line 586
...
The pthread_cond_timedwait() and pthread_cond_wait() functions may fail if:
EINVAL The value specified by cond, mutex, or abstime is invalid.
EINVAL Different mutexes were supplied for concurrent pthread_cond_timedwait() or pthread_cond_wait() operations on the
same condition variable.
On May 22, 2012, at 4:59 PM, Antony Hosking wrote:
> That looks like an old version of ThreadPThread. In the current version I don’t see any code at line 595.
>
> On May 22, 2012, at 4:59 AM, Dragiša Durić wrote:
>
>>
>> ***
>> *** runtime error:
>> *** <*ASSERT*> failed.
>> *** file "../src/thread/PTHREAD/ThreadPThread.m3", line 586
>> ***
>> ...
>> #17 0x00ebd21d in ThreadPThread__XPause (M3_DMxDjQ_self=0x8052018, M3_CtKayy_n=1000000000, M3_AicXUJ_alertable=0 '\000')
>> at ../src/thread/PTHREAD/ThreadPThread.m3:586
>> #18 0x00ebd287 in Thread__Pause (M3_CtKayy_n=1000000000) at ../src/thread/PTHREAD/ThreadPThread.m3:595
>> #19 0x006e142f in XLModuleMain__Delay (M3_D6v54n_frame=0xb7ebf180, M3_AZx9O5_args=0xb7ec0e58) at ../src/modules/XLModuleMain.m3:213
>> …
>>
>> And so on… Looks like I reported this earlier, here:
>>
>> https://mail.elegosoft.com/pipermail/m3devel/2011-April/008757.html
>>
>> Any progress? Maybe I missed something.
>>
>> dd
>>
>>
>
More information about the M3devel
mailing list