[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