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 <kultihell@gmail.com>
A: boost-users@lists.boost.org
Inviato: Lun 14 marzo 2011, 16:59:39
Oggetto: Re: [Boost-users] boost::mutex over a socket

On Mon, Mar 14, 2011 at 3:28 PM, Marco Piacentini
<marcopiacenta@yahoo.it> wrote:
> 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