From 7ca57260e684c486ae0e24e94e3d9cefc8b88b3d Mon Sep 17 00:00:00 2001 From: robertabcd Date: Sat, 11 Oct 2014 10:21:04 +0000 Subject: daemon/barebone: add |SERVER_USE_PTHREADS| option to support threading. git-svn-id: http://opensvn.csie.org/pttbbs/trunk@6081 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- pttbbs/daemon/barebone/server.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pttbbs/daemon/barebone/server.c b/pttbbs/daemon/barebone/server.c index df347abd..c23ef4d0 100644 --- a/pttbbs/daemon/barebone/server.c +++ b/pttbbs/daemon/barebone/server.c @@ -29,6 +29,9 @@ #include #include #include +#ifdef SERVER_USE_PTHREADS +#include +#endif #include "server.h" @@ -78,7 +81,7 @@ setup_client(struct event_base *base, evutil_socket_t fd, struct sockaddr *address, int socklen) { struct bufferevent *bev = bufferevent_socket_new(base, fd, - BEV_OPT_CLOSE_ON_FREE | BEV_OPT_DEFER_CALLBACKS); + BEV_OPT_CLOSE_ON_FREE | BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE); bufferevent_setcb(bev, client_read_cb, NULL, client_event_cb, NULL); bufferevent_set_timeouts(bev, common_timeout, common_timeout); bufferevent_enable(bev, EV_READ|EV_WRITE); @@ -125,9 +128,17 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); } +#ifdef SERVER_USE_PTHREADS + evthread_use_pthreads(); +#endif + base = event_base_new(); assert(base); +#ifdef SERVER_USE_PTHREADS + evthread_make_base_notifiable(base); +#endif + common_timeout = event_base_init_common_timeout(base, &timeout); if (!inetd) { -- cgit v1.2.3