
Ok...I've done something like this:
void executeThread()
{
m_mutex.lock();
length=boost::asio::read(socket_,boost::asio::buffer(msg,sizeof(msg)), ec);
m_mutex.unlock();
m_mutex.lock();
boost::asio::write(socket_,boost::asio::buffer(msgToSend,sizeof(msgToSend)));
m_mutex.unlock();
}
and I call two thread inside a member's function Server Class:
void handle_accept()
{
....
....
if(fork()==0)
{
boost::thread thread_read(&server::executeThread,this);
boost::thread thread_write(&server::executeThread,this);
thread_read.join();
thread_write.join();
}
else
{
....
....
}
}
Can I obtain in this way a thread that read and the other that write?
and to obtain a ciclyc behaviour, where I have to put the for(;;)?thanks..
________________________________
Da: Kulti
Hi guys...I've 2 thread and I would like that one of these performs a synchronous read, menawhile the other performs a synchrounous write...adn obviously they share the same socket.....the signature of the functions are the following:
length=boost::asio::read(socket_,boost::asio::buffer(msg,sizeof(msg)), ec);
boost::asio::write(socket_,boost::asio::buffer(msgToSend,sizeof(msgToSend)));
socket_ is a private field of the classe Server.
How can I use the mutex to perform concurrently and safetly these operations?
Thanks..
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
The typical usage of mutex: 1. Add boost::mutex mutex_ as private field of class Server 2. When you read/write just add mutex_.lock() before and mutex_.unlock() after. Also you can use boost::mutex::scoped_lock if it's convenient. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users