
Clark Sims <clark_sims_boost <at> yahoo.com> writes:
I defined this class for managing a thread group, with different priorities
http://rafb.net/p/u0LDDP45.html I wrote this test example: http://rafb.net/p/bAIhrh79.html it works perfectly in linux, generating this output : http://acumenconsultinginc.net/linux.results.txt on windows, it calls the appropriate locks, but it does not stop when two locks, lock the same mutex: http://acumenconsultinginc.net/windows.results.txt.
My class for managing threads, based upon priorities, won't work unless the
for different threads previous small code fragment deadlocks. Those URLs don't work for me, but presumably what you want is something that blocks until something is queued to be run by one of the threads in the group. My suggestion would be to use semaphores rather than mutexes for this. You initialize the semaphore count to 0 so that the first time you wait for it you immediately block. When another thread signals the semaphore you wake up. You'll have to write your own cross-platform semaphore class though as Boost.Thread doesn't have one. Colin