6.4.3 and threaded RTS problems

skaller skaller at users.sourceforge.net
Thu Aug 24 04:22:37 EDT 2006


On Thu, 2006-08-24 at 08:56 +0100, Simon Marlow wrote:
> Hi Folks,
> 
> Roman Leshchinskiy and I looked into the 6.4.3 crashes on Sparc/Solaris 
> yesterday.  I think we may have found the problem, and it seems likely that this 
> is the same problem affecting 6.4.3 on MacOS X.  The threaded RTS is assuming in 
> a couple of places that pthread_cond_wait() doesn't spuriously wake up, which is 
> apparently the case on Linux but not true in general.

I don't believe it is the case on Linux either. I had the same
problem: on Linux it appears to work .. but Posix allows
spurious wakeups, our OSX/Solaris/Windows code failed. 

This isn't just for cond_wait: most system calls can return 
spuriously if an OS signal goes off. Somewhere I read a good article
explaining why this is necessary for good performance.
A signal to a condition variable should be regarded as
a hint to recheck the condition. 

-- 
John Skaller <skaller at users dot sf dot net>
Felix, successor to C++: http://felix.sf.net



More information about the Glasgow-haskell-users mailing list