Lines Matching defs:handle

36   uv_signal_t* handle;
44 static int uv__signal_start(uv_signal_t* handle,
50 static void uv__signal_stop(uv_signal_t* handle);
168 uv_signal_t* handle;
174 handle = RB_NFIND(uv__signal_tree_s, &uv__signal_tree, &lookup);
176 if (handle != NULL && handle->signum == signum)
177 return handle;
185 uv_signal_t* handle;
196 for (handle = uv__signal_first_handle(signum);
197 handle != NULL && handle->signum == signum;
198 handle = RB_NEXT(uv__signal_tree_s, &uv__signal_tree, handle)) {
202 msg.handle = handle;
209 r = write(handle->loop->signal_pipefd[1], &msg, sizeof msg);
216 handle->caught_signals++;
297 * It's safe to use QUEUE_FOREACH here because the handles and the handle
301 uv_handle_t* handle = QUEUE_DATA(q, uv_handle_t, handle_queue);
303 if (handle->type == UV_SIGNAL)
304 uv__signal_stop((uv_signal_t*) handle);
319 int uv_signal_init(uv_loop_t* loop, uv_signal_t* handle) {
326 uv__handle_init(loop, (uv_handle_t*) handle, UV_SIGNAL);
327 handle->signum = 0;
328 handle->caught_signals = 0;
329 handle->dispatched_signals = 0;
335 void uv__signal_close(uv_signal_t* handle) {
336 uv__signal_stop(handle);
340 int uv_signal_start(uv_signal_t* handle, uv_signal_cb signal_cb, int signum) {
341 return uv__signal_start(handle, signal_cb, signum, 0);
345 int uv_signal_start_oneshot(uv_signal_t* handle,
348 return uv__signal_start(handle, signal_cb, signum, 1);
352 static int uv__signal_start(uv_signal_t* handle,
360 assert(!uv__is_closing(handle));
372 * time frame that handle->signum == 0.
374 if (signum == handle->signum) {
375 handle->signal_cb = signal_cb;
380 if (handle->signum != 0) {
381 uv__signal_stop(handle);
401 handle->signum = signum;
403 handle->flags |= UV_SIGNAL_ONE_SHOT;
405 RB_INSERT(uv__signal_tree_s, &uv__signal_tree, handle);
409 handle->signal_cb = signal_cb;
410 uv__handle_start(handle);
420 uv_signal_t* handle;
457 handle = msg->handle;
459 if (msg->signum == handle->signum) {
460 assert(!(handle->flags & UV_HANDLE_CLOSING));
461 handle->signal_cb(handle, handle->signum);
464 handle->dispatched_signals++;
466 if (handle->flags & UV_SIGNAL_ONE_SHOT)
467 uv__signal_stop(handle);
513 int uv_signal_stop(uv_signal_t* handle) {
514 assert(!uv__is_closing(handle));
515 uv__signal_stop(handle);
520 static void uv__signal_stop(uv_signal_t* handle) {
529 if (handle->signum == 0)
534 removed_handle = RB_REMOVE(uv__signal_tree_s, &uv__signal_tree, handle);
535 assert(removed_handle == handle);
541 first_handle = uv__signal_first_handle(handle->signum);
543 uv__signal_unregister_handler(handle->signum);
545 rem_oneshot = handle->flags & UV_SIGNAL_ONE_SHOT;
548 ret = uv__signal_register_handler(handle->signum, 1);
556 handle->signum = 0;
557 uv__handle_stop(handle);