On 2/25/08, Tao Hui <[EMAIL PROTECTED]> wrote: > Hello, > > I want to implement a pipeline server build on libevent, it contains a > libevent thread and serval worker threads. libevent thread read request, > write result, and worker thread process the request. Which can be described > as follows: > > libevent thread: > 1. accept a new connection. > 2. register "EV_READ | EV_PERSIST" on the connection socket. > 3. read a full request from the socket under libevent loop. > 4. cancel the registration of socket through event_del, and add request to > request queue, > then pthead_cond_signal worker thread. > > worker thread: > 1. get a request from request queue, process it. > 2. add the result to result queue, and signal libevent thread through pipe. > > libevnet thread: > 1. get a result from result queue, register "EV_WRITE | EV_PERSIST" on the > connection socket associated with the result. > 2. write the result to the socket under libevent loop. I would like to suggest that you take a look at libev (http://software.schmorp.de/pkg/libev.html), which has a libevent "compatibility" API but also has a number of watchers to deal with multiple threads. I do not understand these at all, but maybe they would make more sense to you.
CB _______________________________________________ Libevent-users mailing list Libevent-users@monkey.org http://monkeymail.org/mailman/listinfo/libevent-users