port: add a per-port lock

This commit is contained in:
Bert Belder 2017-09-25 18:34:16 +02:00
parent f1383cadfd
commit 7476633975
2 changed files with 4 additions and 0 deletions

View File

@ -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;

View File

@ -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);