|
Boost Users : |
From: Aschwin Gopalan (yg-boost-users_at_[hidden])
Date: 2003-01-22 05:52:44
William E. Kempf wrote:
>> From: "hlh771 <hlh771_at_[hidden]>" <hlh771_at_[hidden]>
>>
>> How to stop(or cancel) a thread? Suppose I have a main thread and a
>> worker thread, the worker thread does something looply,and when the
>> main thread get a message indicating the process should exit, I want
>> stop the worker thread,how to do that?I have read other thread
>> library,their thread class supply a method called stop or cancel
>> which stops the thread. Their Implementation is:the thread class has
>> a data member indicating whether the thread should stop,and the
>> thread function looply check the data member whether the thread
>> should stop.Generally the data member's type is a bool or Event.
>> Is it the best way to stop the thread? How the boost to deal with
>> this?
>> Thanks in advance.
>
> Today you should use a flag and a condition/mutex combination. Direct
> support for cancellation is being provided in a future release.
Actually, this works fine for ordinary loops. The problem I
am facing is how to stop a thread which may sit in blocking
system calls like reading from a (blocking) socket. Is there
any "standard" way to solve this problem? Now, I am using
nonblocking sockets, implementing "timeouts" myself, but it
just doesn't feel right...
Aki
>
> William E. Kempf
> wekempf_at_[hidden]
>
>
>
> Info: <http://www.boost.org>
> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl>
> Unsubscribe: <mailto:boost-users-unsubscribe_at_[hidden]>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net