Tristan King
Hi, I'm having trouble getting shared_ptr objects and threads to work in harmony. <snip> i'm not worried about the order that the threads run in (as this is just an example of the problem i'm having in a simple multi-threaded web server i'm working on), but it seems like the shared_ptr object may be getting deleted before the last thread gets to execute.
Yes, that is what is happening. The problem is that your single_thread objects are destroyed at the end of the loop body. By the time the new thread runs its single_thread may have been destroyed along with all its members. Since each single_thread is constructed in the same block of memory, it is possible for the thread to pick up the value intended for the next thread. <snip>
can anyone give me any pointers on how to get around this problem? <snip>
I suggest you create your thread objects with 'new' instead, or else define an array of them outside the loop. Ben.