Example #1
0
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);
}
Example #2
0
void handle_init(void)
{
  HANDLE_INIT(buffer);
  HANDLE_INIT(window);
  HANDLE_INIT(tabpage);
}