From 1f795ae60fd7fadc8ff75310cc13eb9ec0972a17 Mon Sep 17 00:00:00 2001 From: Bert Belder Date: Mon, 11 Sep 2017 01:38:24 +0200 Subject: [PATCH] port: manipulate request count through ep_port_(add|del)_req --- src/epoll-socket.c | 5 +++-- src/epoll.c | 8 ++++++++ src/port.h | 3 +++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/epoll-socket.c b/src/epoll-socket.c index 74f774d..c3c89a9 100644 --- a/src/epoll-socket.c +++ b/src/epoll-socket.c @@ -92,15 +92,16 @@ void ep_sock_register_poll_req(ep_port_t* port_info, ep_sock_t* sock_info) { _ep_sock_private_t* sock_private = _ep_sock_private(sock_info); assert(!_ep_sock_is_deleted(sock_private)); + + ep_port_add_req(port_info); sock_private->poll_req_count++; - port_info->poll_req_count++; } void ep_sock_unregister_poll_req(ep_port_t* port_info, ep_sock_t* sock_info) { _ep_sock_private_t* sock_private = _ep_sock_private(sock_info); + ep_port_del_req(port_info); sock_private->poll_req_count--; - port_info->poll_req_count--; _ep_sock_maybe_free(sock_private); } diff --git a/src/epoll.c b/src/epoll.c index 60a2780..2a88b70 100644 --- a/src/epoll.c +++ b/src/epoll.c @@ -320,6 +320,14 @@ int ep_port_del_socket(ep_port_t* port_info, handle_tree_entry_t* tree_entry) { return handle_tree_del(&port_info->sock_tree, tree_entry); } +void ep_port_add_req(ep_port_t* port_info) { + port_info->poll_req_count++; +} + +void ep_port_del_req(ep_port_t* port_info) { + port_info->poll_req_count--; +} + SOCKET ep_port_get_driver_socket(ep_port_t* port_info, SOCKET socket) { ssize_t index; size_t i; diff --git a/src/port.h b/src/port.h index ef63528..fa2462b 100644 --- a/src/port.h +++ b/src/port.h @@ -30,6 +30,9 @@ EPOLL_INTERNAL int ep_port_add_socket(ep_port_t* port_info, EPOLL_INTERNAL int ep_port_del_socket(ep_port_t* port_info, handle_tree_entry_t* tree_entry); +EPOLL_INTERNAL void ep_port_add_req(ep_port_t* port_info); +EPOLL_INTERNAL void ep_port_del_req(ep_port_t* port_info); + EPOLL_INTERNAL void ep_port_request_socket_update(ep_port_t* port_info, ep_sock_t* sock_info); EPOLL_INTERNAL void ep_port_clear_socket_update(ep_port_t* port_info,