|
Boost Users : |
Subject: Re: [Boost-users] Concurrency and session termination in boost::asio
From: Igor R (boost.lists_at_[hidden])
Date: 2008-11-06 04:15:30
> Does all of that sound about right?
Yes, that's exactly the way it's done in the examples.
> The close method calls "is_open" to determine if the socket has
> already been closed, and if it is not asks the OS to close it.
>
> It looks to me like this is not done in a threadsafe way.
Right, you should post closing to the io_service thread, like this:
void my_connection::close()
{
io_service_.post(boost::bind(&my_connection::do_close, shared_from_this()));
}
void my_connection::do_close()
{
boost::system::error_code err;
socket_.close(err);
}
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