[libdispatch-dev] State of the Linux port (with blocks support)

Robert Watson robert at fledge.watson.org
Thu Nov 19 07:51:46 PST 2009

On Thu, 19 Nov 2009, Mario Schwalbe wrote:

> dispatch_after:         fail, spins forever
> dispatch_apply:         pass
> dispatch_drift:         fail, spins forever
> dispatch_group:         pass
> dispatch_pingpong:      pass
> dispatch_read:          fail, spins forever
> dispatch_readsync:      pass
> dispatch_sema:          pass
> dispatch_timer_bit31:   fail, spins forever
> dispatch_timer_bit63:   fail, spins forever
> dispatch_plusplus:      pass
> Hopefully, those tasks that don't terminate fail due to the same problem, so 
> I'm going to investigate this issue further.

The fail, spin forever problems sounds a bit like you might be running into 
problems with either the timeout code or the posix semaphore-based wakeup 
mechanism.  I had similar problems when initially working on the psem parts, 
and in particular ran into semantic issues with the interpretations of 
timeouts and relative vs. absolute time.  There might be either underlying 
differences in how it works with libkqueue that need to be resolved, or there 
could be bugs in the psem code (I should out a few of them only a week or two 
ago once I made it through the last bits of the test suite).

Robert N M Watson
Computer Laboratory
University of Cambridge

More information about the libdispatch-dev mailing list