Lines Matching refs:poll_group

919 typedef struct poll_group poll_group_t;
924 WEPOLL_INTERNAL void poll_group_release(poll_group_t* poll_group);
926 WEPOLL_INTERNAL void poll_group_delete(poll_group_t* poll_group);
931 poll_group_get_afd_helper_handle(poll_group_t* poll_group);
959 typedef struct poll_group { struct
970 poll_group_t* poll_group = malloc(sizeof *poll_group); in poll_group__new() argument
971 if (poll_group == NULL) in poll_group__new()
974 memset(poll_group, 0, sizeof *poll_group); in poll_group__new()
976 queue_node_init(&poll_group->queue_node); in poll_group__new()
977 poll_group->port_state = port_state; in poll_group__new()
979 if (afd_create_helper_handle(iocp_handle, &poll_group->afd_helper_handle) < in poll_group__new()
981 free(poll_group); in poll_group__new()
985 queue_append(poll_group_queue, &poll_group->queue_node); in poll_group__new()
987 return poll_group; in poll_group__new()
990 void poll_group_delete(poll_group_t* poll_group) { in poll_group_delete() argument
991 assert(poll_group->group_size == 0); in poll_group_delete()
992 CloseHandle(poll_group->afd_helper_handle); in poll_group_delete()
993 queue_remove(&poll_group->queue_node); in poll_group_delete()
994 free(poll_group); in poll_group_delete()
1001 HANDLE poll_group_get_afd_helper_handle(poll_group_t* poll_group) { in poll_group_get_afd_helper_handle() argument
1002 return poll_group->afd_helper_handle; in poll_group_get_afd_helper_handle()
1007 poll_group_t* poll_group = in poll_group_acquire() local
1013 if (poll_group == NULL || in poll_group_acquire()
1014 poll_group->group_size >= POLL_GROUP__MAX_GROUP_SIZE) in poll_group_acquire()
1015 poll_group = poll_group__new(port_state); in poll_group_acquire()
1016 if (poll_group == NULL) in poll_group_acquire()
1019 if (++poll_group->group_size == POLL_GROUP__MAX_GROUP_SIZE) in poll_group_acquire()
1020 queue_move_first(poll_group_queue, &poll_group->queue_node); in poll_group_acquire()
1022 return poll_group; in poll_group_acquire()
1025 void poll_group_release(poll_group_t* poll_group) { in poll_group_release() argument
1026 port_state_t* port_state = poll_group->port_state; in poll_group_release()
1029 poll_group->group_size--; in poll_group_release()
1030 assert(poll_group->group_size < POLL_GROUP__MAX_GROUP_SIZE); in poll_group_release()
1032 queue_move_last(poll_group_queue, &poll_group->queue_node); in poll_group_release()
1166 poll_group_t* poll_group = poll_group_from_queue_node(queue_node); in port_delete() local
1167 poll_group_delete(poll_group); in port_delete()
1593 poll_group_t* poll_group; member
1616 if (afd_cancel_poll(poll_group_get_afd_helper_handle(sock_state->poll_group), in sock__cancel_poll()
1627 poll_group_t* poll_group; in sock_new() local
1637 poll_group = poll_group_acquire(port_state); in sock_new()
1638 if (poll_group == NULL) in sock_new()
1648 sock_state->poll_group = poll_group; in sock_new()
1661 poll_group_release(poll_group); in sock_new()
1685 poll_group_release(sock_state->poll_group); in sock__delete()
1795 if (afd_poll(poll_group_get_afd_helper_handle(sock_state->poll_group), in sock_update()