On May 5, 2011, at 8:51 AM, eveningnick eveningnick wrote: > 2011/5/5 Heath Borders <heath.bord...@gmail.com>: >> Try NSConditionLock. Its documentation should be pretty self-explanatory. >> > > Health, > thanks for the response. > However, i can't see how can i use NSConditionLock in my situation. > For every lock (or mutex/semaphore - which essentially is the same) i > need to acquire it 1 time at least to stop the the thread when a > second attempt to acquire it from a different thread is made. > What i need - is to stop the thread A immediately after the thread B > has been spawned by a thread A. I am afraid if i acquire the lock from > A, and then acquire it as soon as B starts (in B routine), the thread > A may even finish before the thread B _actually_ starts (or rather B's > threadfunction starts executing). > Am i wrong somewhere here?
NSConditionLock allows one to lock waiting for specific conditions. The lock can be created in an initial condition, say THREAD_B_NOT_RUNNING. Then, Thread A can spawn B and lock waiting for condition THREAD_B_RUNNING. Thread B can take the lock unconditionally and, when it's ready, unlock it with condition THREAD_B_RUNNING. Or whatever. Other possible techniques include using a pipe to send a signal byte from one thread to the other. So, thread A would do a blocking read from the pipe. Thread B would write a single byte to the pipe to signal whatever condition. There are all sorts of other approaches. Regards, Ken _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com