This is excellent!
I have written a pure userspace implementation of the Darwin pthread_workqueue API as used by libdispatch. This is based on Stacey Son's port to FreeBSD [1], but does not include any of the kernel bits. It's portable to a wide range of POSIX-compliant platforms. I have tested it under Linux, and it shows major improvements in the performance and stability of the libdispatch test suite.
I havn't implemented overcommit or multiple priority levels yet, but the basic workqueue functionality is there. I have a few ideas for adding kernel support and will be developing a Linux kernel module to complement the existing userspace code.
A tarball of the source code is here:
http://mark.heily.com/src/libpthread_workqueue-0.1.tar.gz
The SVN repository is available here:
svn://mark.heily.com/libpthread_workqueue
To try this with libdispatch, add '-lpthread_workqueue' to the LDADD variable in testing/Makefile.am.
Regards,
- Mark
[1] http://people.freebsd.org/~sson/thrworkq/
_______________________________________________
libdispatch-dev mailing list
libdispatch-dev@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/libdispatch-dev