On Wed, Apr 10, 2013 at 6:00 PM, Michael Powell <mwpowellhtx@gmail.com> wrote:
Hello,

I know this is possible, just don't have all the templates at the ready. Graceful way of stopping a boost worker thread from running.

Something very nearly like this is along the lines what I am looking for (untested):

http://stackoverflow.com/questions/8538575/is-there-an-easy-way-to-implement-autoresetevent-in-c0x

Using this abstraction, very easily set it up to coordinate the worker producer thread with controller wanting to stop.
 
I am familiar with C# .NET threading, I can fairly simply signal an AutoResetEvent, for instance, and wait a nominal period for it to be set.

Afterwards, this tells the thread to stop what it's doing at an opportune moment. Meanwhile the parent thread is joining the worker thread(s) back up.

Something like that. I just need a few tips what concept to link up: i.e. mutex? shared_mutex? lock? shared_lock?

I'll have a start_work, stop_work, and working type motif going on. I call start_work to start the working thread going. Simple enough. I will call stop_work to signal the worker thread(s) to stop and join up with the worker threads.

Somewhere in between the worker thread is polling the lock does it need to stop, do it's work, then back around again. And so on...

Thank you...

Regards,

Michael Powell