| 781 | } |
| 782 | |
| 783 | static void complete_accept(accept_result_t *result, HRESULT status) |
| 784 | { |
| 785 | result->new_sock->ops_in_progress--; |
| 786 | iocpdesc_t *ld = result->base.iocpd; |
| 787 | if (ld->read_closed) { |
| 788 | if (!result->new_sock->closing) |
| 789 | pni_iocp_begin_close(result->new_sock); |
| 790 | pn_decref(result->new_sock); |
| 791 | free(result); // discard |
| 792 | reap_check(ld); |
| 793 | } else { |
| 794 | assert(!ld->is_mp); // Non mp only |
| 795 | result->base.status = status; |
| 796 | pn_list_add(ld->acceptor->accepts, result); |
| 797 | pni_events_update(ld, ld->events | PN_READABLE); |
| 798 | } |
| 799 | } |
| 800 | |
| 801 | |
| 802 | // === Async connect processing |
no test coverage detected