diff --git a/src/port.c b/src/port.c index 160b3e4..8c6f3e7 100644 --- a/src/port.c +++ b/src/port.c @@ -38,6 +38,7 @@ ep_port_t* ep_port_new(HANDLE iocp) { queue_init(&port_info->update_queue); tree_init(&port_info->sock_tree); reflock_tree_node_init(&port_info->handle_tree_node); + InitializeCriticalSection(&port_info->lock); return port_info; } @@ -77,6 +78,8 @@ int ep_port_delete(ep_port_t* port_info) { poll_group_allocator_delete(pga); } + DeleteCriticalSection(&port_info->lock); + _ep_port_free(port_info); return 0; diff --git a/src/port.h b/src/port.h index b14730f..cb06173 100644 --- a/src/port.h +++ b/src/port.h @@ -23,6 +23,7 @@ typedef struct ep_port { tree_t sock_tree; queue_t update_queue; reflock_tree_node_t handle_tree_node; + CRITICAL_SECTION lock; } ep_port_t; EPOLL_INTERNAL ep_port_t* ep_port_new(HANDLE iocp);