pthreads works, sorta
Tue Jun 26 05:10:00 GMT 2001
----- Original Message -----
From: "Robert Collins" <email@example.com>
> ----- Original Message -----
> From: "Greg Smith" <firstname.lastname@example.org>
> To: "Cygwin General MailList" <email@example.com>
> Sent: Tuesday, June 26, 2001 12:21 PM
> Subject: Re: pthreads works, sorta
> > Robert Collins wrote:
> > > >
> > > > My (heavily threaded) application runs approximately 100x
> > > > slower than under linux and proceeds to the point where the
> > > > program thrashes because it is calling pthreads functions
> > > > faster than the pthreads implementation can deliver (we're
> > > > talking _mutex_lock/unlock and _cond_wait/signal here).
> > >
> > > Condition variables we can't do much about here, other than trying
> > > get down to the metal and rewrite em without OS support. I'm not
> keen to
> > > try that, for what I hope are obvious reasons.
> > True.
> I've just reviewed my reading, and it doesn't look as though critical
> sections are going to be _much_ faster.
> --> Greg, do you know that your issue is thread syncronisation
> performance, or performance of I/O or other posix calls in between ?
> program shouldn't crash unless it manages to deadlock or trigger a
> race... certainly the pthread calls cannot happen except when your
> threads are active and have got cpu :].
> How many concurrent threads and mutexs and cond variables are we
Also, if you use pthread_cond_timedwait, you might like to try the
attached patch, it fixes a misinterpretation of the time parameter in
the spec. That slight reading error would cause huge (potentially years
long!) delays. Threads would appear to hang... etc.
Tue Jun 26 22:10:00 2001 Robert Collins firstname.lastname@example.org
* thread.cc (pthread_cond::TimedWait): Check for WAIT_TIMEOUT as
well as WAIT_ABANDONED.
(__pthread_cond_timedwait): Calculate a relative wait from the
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1830 bytes
Desc: not available
More information about the Cygwin