look at this
http://www.ddj.com/dept/cpp/184401518

the article is a good introduction to Boost Thread concepts
for your needs use concepts described in paragraph 1 and 2 (listing 1, 2 and optionally 3)

ciao

2007/6/11, attoo@tele2.it <attoo@tele2.it>:
Greetings, my name is Emanuele.
I am not very good at C++ (I am still studying) but I was asked to setup a multithreaded server on a Redhat Linux system, threads should be concurrent on a common resource.
 
My idea is to open a new thread for each new client that connects to the server, lock the common resource, use it, unlock it and return back results to each client correctly.
At the very beginning I thought to do it with C syntax, forking a new process for each new client.
It worked, but because of the common resource, results are returned in the wrong way, not in the correct order.
 
This is the idea of what I wanted to do:
//parent process
while(1){
        int conn=accept(listen_sd,........);
 
        if( fork()==0 ){  //child process
             close(listen_sd);
             //reading from conn
             //elaborating received data, through a common resource, to be "mutexed"
             //sending results to conn
        }
          
        //parent process
        close(conn);
}
 
 
Is there a way to do it with Boost::thread? One thread for each client, with synchronization on the common resource?
If yes, could you possibly tell me how to do it for real, at least in the basic lines?
 
Thank you for your effort and patience
EMA

_______________________________________________
threads-devel mailing list
threads-devel@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/threads-devel