[thread] Interrupt callback?

I want to be able to get an interruption callback (as, say a boost::function) for the current thread. Here is the deal - I have a boost::thread_group, now each thread is creating a series of messages. This message passed from thread to thread, and as it passes to a new thread, each thread needs to put into the message a callback function that can be used to interrupt the thread that owns said message. This is mainly so that if I want to do something with the message mid-'flight' (the request will come from a different thread processing the message), and it happens to be waiting on a condition, I can interrupt that thread and handle the change request on the message. Here is the problem - there is no way to get the callback function from within the thread itself, or indeed. The best I can do is create the thread then set the function in some kind of data structure AFTER the thread has been created, and use some kind of condition or something to 'hold' the new thread until this function has been set. This is kind of dodgy imho. It also requires me to keep a secondary structure pretaining to a thread outside the thread_group. At which point I may as well do the thread_group by hand (which, given the simplicity of thread_group is not a huge amount of code, but still). So, is there a solution that will satisfy the code poet in me? or do I just roll my own thread group? PreZ :)
participants (1)
-
Preston A. Elder