static void async_cb(uv_async_t *handle, int status) { lcb_luv_socket_t sock = (lcb_luv_socket_t)handle->data; log_loop_trace("prepcb start"); if (!sock) { fprintf(stderr, "We were called with prepare_t %p, with a missing socket\n", (void *)handle); return; } sock->async_state |= LCB_LUV_ASYNCf_ENTERED; do { if (ASYNC_IS(sock, DEINIT)) { /** * We were requested to asynchronously be cancelled */ sock->async_state = 0; lcb_luv_socket_deinit(sock); break; } lcb_luv_socket_ref(sock); sock->async_state &= (~LCB_LUV_ASYNCf_REDO); maybe_callout(sock); lcb_luv_socket_unref(sock); } while (ASYNC_IS(sock, REDO)); sock->async_state &= ~( LCB_LUV_ASYNCf_ENTERED | LCB_LUV_ASYNCf_REDO | LCB_LUV_ASYNCf_SCHEDULED ); /** * we don't have an actual 'async_stop', so decrement the refcount * once more */ lcb_luv_socket_unref(sock); log_loop_trace("prepcb stop"); (void)status; }
static void prepare_cb(uv_prepare_t *handle, int status) { lcb_luv_socket_t sock = (lcb_luv_socket_t)handle->data; log_loop_trace("prepcb start"); if (!sock) { fprintf(stderr, "We were called with prepare_t %p, with a missing socket\n", (void*)handle); return; } lcb_luv_socket_ref(sock); maybe_callout(sock); lcb_luv_socket_unref(sock); log_loop_trace("prepcb stop"); (void)status; }
static void async_cb(uv_async_t *handle, int status) { lcb_luv_socket_t sock = (lcb_luv_socket_t)handle->data; log_loop_trace("prepcb start"); if (!sock) { fprintf(stderr, "We were called with prepare_t %p, with a missing socket\n", (void*)handle); return; } sock->async_entered = 1; do { lcb_luv_socket_ref(sock); sock->async_redo = 0; maybe_callout(sock); lcb_luv_socket_unref(sock); } while (sock->async_redo); sock->async_entered = 0; sock->async_active = 0; /** * we don't have an actual 'async_stop', so decrement the refcount * once more */ lcb_luv_socket_unref(sock); log_loop_trace("prepcb stop"); (void)status; }