deadlock fixed
This commit is contained in:
parent
4d700ef90a
commit
f65711493c
@ -4,7 +4,6 @@ Version 4.2.1.4 'Monza':
|
||||
- TCP/TLS tests extended.
|
||||
- relay RTCP sockets ports allocation fixed.
|
||||
- list of libraries cleaned.
|
||||
- TCP bufferevent concurrency fixed.
|
||||
|
||||
10/05/2014 Oleg Moskalenko <mom040267@gmail.com>
|
||||
Version 4.2.1.2 'Monza':
|
||||
|
||||
@ -1006,7 +1006,7 @@ static void setup_listener(void)
|
||||
{
|
||||
struct bufferevent *pair[2];
|
||||
|
||||
bufferevent_pair_new(turn_params.listener.event_base, BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE, pair);
|
||||
bufferevent_pair_new(turn_params.listener.event_base, TURN_BUFFEREVENTS_OPTIONS, pair);
|
||||
turn_params.listener.in_buf = pair[0];
|
||||
turn_params.listener.out_buf = pair[1];
|
||||
bufferevent_setcb(turn_params.listener.in_buf, listener_receive_message, NULL, NULL, &turn_params.listener);
|
||||
@ -1569,13 +1569,13 @@ static void setup_relay_server(struct relay_server *rs, ioa_engine_handle e, int
|
||||
ioa_engine_set_rtcp_map(rs->ioa_eng, turn_params.listener.rtcpmap);
|
||||
}
|
||||
|
||||
bufferevent_pair_new(rs->event_base, BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE, pair);
|
||||
bufferevent_pair_new(rs->event_base, TURN_BUFFEREVENTS_OPTIONS, pair);
|
||||
rs->in_buf = pair[0];
|
||||
rs->out_buf = pair[1];
|
||||
bufferevent_setcb(rs->in_buf, relay_receive_message, NULL, NULL, rs);
|
||||
bufferevent_enable(rs->in_buf, EV_READ);
|
||||
|
||||
bufferevent_pair_new(rs->event_base, BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE, pair);
|
||||
bufferevent_pair_new(rs->event_base, TURN_BUFFEREVENTS_OPTIONS, pair);
|
||||
rs->auth_in_buf = pair[0];
|
||||
rs->auth_out_buf = pair[1];
|
||||
bufferevent_setcb(rs->auth_in_buf, relay_receive_auth_message, NULL, NULL, rs);
|
||||
@ -1678,7 +1678,7 @@ static void* run_auth_server_thread(void *arg)
|
||||
|
||||
struct bufferevent *pair[2];
|
||||
|
||||
bufferevent_pair_new(turn_params.authserver.event_base, BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE, pair);
|
||||
bufferevent_pair_new(turn_params.authserver.event_base, TURN_BUFFEREVENTS_OPTIONS, pair);
|
||||
turn_params.authserver.in_buf = pair[0];
|
||||
turn_params.authserver.out_buf = pair[1];
|
||||
bufferevent_setcb(turn_params.authserver.in_buf, auth_server_receive_message, NULL, NULL, &turn_params.authserver);
|
||||
|
||||
@ -1369,7 +1369,7 @@ ioa_socket_handle ioa_create_connecting_tcp_relay_socket(ioa_socket_handle s, io
|
||||
|
||||
ret->conn_bev = bufferevent_socket_new(ret->e->event_base,
|
||||
ret->fd,
|
||||
BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE);
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(ret->conn_bev);
|
||||
bufferevent_setcb(ret->conn_bev, NULL, NULL, connect_eventcb, ret);
|
||||
|
||||
@ -2382,7 +2382,7 @@ static int socket_input_worker(ioa_socket_handle s)
|
||||
s->fd,
|
||||
s->ssl,
|
||||
BUFFEREVENT_SSL_ACCEPTING,
|
||||
BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE);
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(s->bev);
|
||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||
eventcb_bev, s);
|
||||
@ -2398,7 +2398,7 @@ static int socket_input_worker(ioa_socket_handle s)
|
||||
}
|
||||
s->bev = bufferevent_socket_new(s->e->event_base,
|
||||
s->fd,
|
||||
BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE);
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(s->bev);
|
||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||
eventcb_bev, s);
|
||||
@ -3223,7 +3223,7 @@ int register_callback_on_ioa_socket(ioa_engine_handle e, ioa_socket_handle s, in
|
||||
} else {
|
||||
s->bev = bufferevent_socket_new(s->e->event_base,
|
||||
s->fd,
|
||||
BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE);
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(s->bev);
|
||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||
eventcb_bev, s);
|
||||
@ -3248,14 +3248,14 @@ int register_callback_on_ioa_socket(ioa_engine_handle e, ioa_socket_handle s, in
|
||||
s->fd,
|
||||
s->ssl,
|
||||
BUFFEREVENT_SSL_ACCEPTING,
|
||||
BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE);
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(s->bev);
|
||||
} else {
|
||||
s->bev = bufferevent_openssl_socket_new(s->e->event_base,
|
||||
s->fd,
|
||||
s->ssl,
|
||||
BUFFEREVENT_SSL_OPEN,
|
||||
BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE);
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(s->bev);
|
||||
}
|
||||
bufferevent_setcb(s->bev, socket_input_handler_bev, socket_output_handler_bev,
|
||||
|
||||
@ -1169,7 +1169,7 @@ static void cliserver_input_handler(struct evconnlistener *l, evutil_socket_t fd
|
||||
|
||||
clisession->bev = bufferevent_socket_new(cliserver.event_base,
|
||||
fd,
|
||||
BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE);
|
||||
TURN_BUFFEREVENTS_OPTIONS);
|
||||
debug_ptr_add(clisession->bev);
|
||||
bufferevent_setcb(clisession->bev, cli_socket_input_handler_bev, NULL,
|
||||
cli_eventcb_bev, clisession);
|
||||
@ -1202,7 +1202,7 @@ void setup_cli_thread(void)
|
||||
|
||||
struct bufferevent *pair[2];
|
||||
|
||||
bufferevent_pair_new(cliserver.event_base, BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE, pair);
|
||||
bufferevent_pair_new(cliserver.event_base, TURN_BUFFEREVENTS_OPTIONS, pair);
|
||||
cliserver.in_buf = pair[0];
|
||||
cliserver.out_buf = pair[1];
|
||||
bufferevent_setcb(cliserver.in_buf, cli_server_receive_message, NULL, NULL, &cliserver);
|
||||
|
||||
@ -200,6 +200,10 @@ typedef u32bits turn_time_t;
|
||||
}\
|
||||
} } while(0)
|
||||
|
||||
//////////////// Bufferevents /////////////////////
|
||||
|
||||
#define TURN_BUFFEREVENTS_OPTIONS (BEV_OPT_DEFER_CALLBACKS | BEV_OPT_THREADSAFE | BEV_OPT_UNLOCK_CALLBACKS)
|
||||
|
||||
//////////////// KERNEL-LEVEL CHANNEL HANDLERS /////////
|
||||
|
||||
#if !defined(TURN_CHANNEL_HANDLER_KERNEL)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user