|
|
|
@ -87,7 +87,7 @@ static int tcp_listener_init(socket_t *sock, const endpoint_t *ep,
|
|
|
|
|
i.closed = tcp_listener_closed;
|
|
|
|
|
i.readable = tcp_listener_incoming;
|
|
|
|
|
i.obj = &cb->obj;
|
|
|
|
|
if (!poller_add_item(rtpe_control_poller, &i))
|
|
|
|
|
if (!rtpe_poller_add_item(rtpe_control_poller, &i))
|
|
|
|
|
goto fail;
|
|
|
|
|
|
|
|
|
|
obj_put(cb);
|
|
|
|
@ -121,7 +121,7 @@ static void streambuf_stream_closed(int fd, void *p) {
|
|
|
|
|
mutex_lock(&l->lock);
|
|
|
|
|
bool ret = t_hash_table_remove(l->streams, s);
|
|
|
|
|
mutex_unlock(&l->lock);
|
|
|
|
|
poller_del_item(rtpe_control_poller, s->sock.fd);
|
|
|
|
|
rtpe_poller_del_item(rtpe_control_poller, s->sock.fd);
|
|
|
|
|
reset_socket(&s->sock);
|
|
|
|
|
if (ret)
|
|
|
|
|
obj_put(s);
|
|
|
|
@ -186,7 +186,7 @@ static void streambuf_listener_newconn(struct obj *p, socket_t *newsock, char *a
|
|
|
|
|
t_hash_table_insert(listener->streams, s, s); // hand over ref
|
|
|
|
|
mutex_unlock(&listener->lock);
|
|
|
|
|
|
|
|
|
|
if (!poller_add_item(rtpe_control_poller, &i))
|
|
|
|
|
if (!rtpe_poller_add_item(rtpe_control_poller, &i))
|
|
|
|
|
goto fail;
|
|
|
|
|
|
|
|
|
|
obj_put(s);
|
|
|
|
@ -242,7 +242,7 @@ fail:
|
|
|
|
|
void streambuf_listener_shutdown(struct streambuf_listener *listener) {
|
|
|
|
|
if (!listener)
|
|
|
|
|
return;
|
|
|
|
|
poller_del_item(rtpe_control_poller, listener->listener.fd);
|
|
|
|
|
rtpe_poller_del_item(rtpe_control_poller, listener->listener.fd);
|
|
|
|
|
reset_socket(&listener->listener);
|
|
|
|
|
t_hash_table_destroy_ptr(&listener->streams);
|
|
|
|
|
}
|
|
|
|
|