From: <me...@ho...> - 2006-01-18 17:18:47
|
On Monday 16 January 2006 03:25, David L. Rager wrote: > Hello All, > > This is my first post to this mailing list, so thank you in advance > for your time and thoughts. > > I am working on a parallelization library for our program ACL2 > (http://www.cs.utexas.edu/users/moore/acl2/). ACL2 builds on several > LISPs, including SBCL and OpenMCL. I am trying to determine which of > our parallelization features we can port to SBCL. The OpenMCL > maintainers were kind enough to provide a feature to the > "process-run-function" macro that signals a semaphore upon the death > of a thread. This allows us to terminate child threads that have had > zero CPU time (and thus have not entered any of the ACL2 level code) > and still have them report to their parents that they are "done."=20 > Even if a parent does not need a child's result, the parent is > required to wait for the child to announce that it is done before the > parent is allowed to return its result. Amongst other things, this > requirement helps us maintain stability in our system. So we need JOIN-THREAD[S]. The OpenMCL PROCESS-RUN-FUNCTION macro should=20 not be hard to port. Post it here if you have trouble with it. > Is there a "signal something upon death" feature like this in SBCL? No. > I understand that SBCL uses condition variables, not semaphores, but > I have built a semaphore wrapper around the condition variables and > mutexes so that my code is more uniform across distributions. There is an unexported semaphore implementation in sb-thread that's=20 built the same way, too. > > Thank you, > David L. Rager Cheers, G=C3=A1bor |