int close(int fd) { int ret; if (fd < 0) { acl_msg_error("%s: invalid fd: %d", __FUNCTION__, fd); return -1; } if (!acl_var_hook_sys_api) return __sys_close(fd); fiber_io_close(fd); /* when the fd was closed by epoll_event_close normally, the fd * must be a epoll fd which was created by epoll_create function * hooked in hook_net.c */ if (epoll_event_close(fd) == 0) return 0; ret = __sys_close(fd); if (ret == 0) return ret; fiber_save_errno(); return ret; }
int close(int fd) { int ret; if (fd < 0) { acl_msg_error("%s: invalid fd: %d", __FUNCTION__, fd); return -1; } if (!acl_var_hook_sys_api) return __sys_close(fd); fiber_io_close(fd); ret = __sys_close(fd); if (ret == 0) return ret; fiber_save_errno(); return ret; }