port: move closing the IOCP port to it's own internal API
This commit is contained in:
parent
3c2c4bfce7
commit
fd83d12648
@ -43,6 +43,8 @@ int epoll_close(epoll_t port_handle) {
|
||||
|
||||
port_info = (ep_port_t*) port_handle;
|
||||
|
||||
ep_port_close(port_info);
|
||||
|
||||
return ep_port_delete(port_info);
|
||||
}
|
||||
|
||||
|
||||
12
src/port.c
12
src/port.c
@ -41,10 +41,20 @@ ep_port_t* ep_port_new(HANDLE iocp) {
|
||||
return port_info;
|
||||
}
|
||||
|
||||
int ep_port_close(ep_port_t* port_info) {
|
||||
HANDLE iocp = port_info->iocp;
|
||||
port_info->iocp = NULL;
|
||||
|
||||
if (!CloseHandle(iocp))
|
||||
return_error(-1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ep_port_delete(ep_port_t* port_info) {
|
||||
tree_node_t* tree_node;
|
||||
|
||||
if (!CloseHandle(port_info->iocp))
|
||||
if (port_info->iocp != NULL && !CloseHandle(port_info->iocp))
|
||||
return_error(-1);
|
||||
port_info->iocp = NULL;
|
||||
|
||||
|
||||
@ -24,6 +24,7 @@ typedef struct ep_port {
|
||||
} ep_port_t;
|
||||
|
||||
EPOLL_INTERNAL ep_port_t* ep_port_new(HANDLE iocp);
|
||||
EPOLL_INTERNAL int ep_port_close(ep_port_t* port_info);
|
||||
EPOLL_INTERNAL int ep_port_delete(ep_port_t* port_info);
|
||||
|
||||
EPOLL_INTERNAL int ep_port_update_events(ep_port_t* port_info);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user