CAMLprim value uwt_udp_recv_stop(value o_udp, value o_abort) { HANDLE_NO_UNINIT_CLOSED_INT_RESULT(o_udp); HANDLE_INIT(u,o_udp); value ret; if ( u->cb_read == CB_INVALID || /* see comment to uwt_read_stop */ (u->read_waiting == 1 && Long_val(o_abort) == 0 )){ ret = Val_long(0); } else { const int erg = uv_udp_recv_stop((uv_udp_t*)u->handle); if ( erg >= 0 ){ u->can_reuse_cb_read = 0; u->read_waiting = 0; --u->in_use_cnt; uwt__gr_unregister(&u->cb_read); } ret = VAL_UWT_UNIT_RESULT(erg); } CAMLreturn(ret); }
void handle_init(void) { HANDLE_INIT(buffer); HANDLE_INIT(window); HANDLE_INIT(tabpage); }