/* with it. */ void uv_pipe_cleanup(uv_loop_t* loop, uv_pipe_t* handle) { int i; HANDLE pipeHandle; if (handle->name) { free(handle->name); handle->name = NULL; } if (handle->flags & UV_HANDLE_PIPESERVER) { for (i = 0; i < handle->pending_instances; i++) { pipeHandle = handle->accept_reqs[i].pipeHandle; if (pipeHandle != INVALID_HANDLE_VALUE) { CloseHandle(pipeHandle); handle->accept_reqs[i].pipeHandle = INVALID_HANDLE_VALUE; } } } if (handle->flags & UV_HANDLE_CONNECTION) { handle->flags &= ~UV_HANDLE_WRITABLE; eof_timer_destroy(handle); } if ((handle->flags & UV_HANDLE_CONNECTION) && handle->handle != INVALID_HANDLE_VALUE) { CloseHandle(handle->handle); handle->handle = INVALID_HANDLE_VALUE; } }
/* with it. */ void close_pipe(uv_pipe_t* handle, int* status, uv_err_t* err) { int i; HANDLE pipeHandle; if (handle->name) { free(handle->name); handle->name = NULL; } if (handle->flags & UV_HANDLE_PIPESERVER) { for (i = 0; i < handle->pending_instances; i++) { pipeHandle = handle->accept_reqs[i].pipeHandle; if (pipeHandle != INVALID_HANDLE_VALUE) { CloseHandle(pipeHandle); handle->accept_reqs[i].pipeHandle = INVALID_HANDLE_VALUE; } } } if (handle->flags & UV_HANDLE_CONNECTION) { eof_timer_destroy(handle); } if ((handle->flags & UV_HANDLE_CONNECTION) && handle->handle != INVALID_HANDLE_VALUE) { CloseHandle(handle->handle); handle->handle = INVALID_HANDLE_VALUE; } handle->flags |= UV_HANDLE_SHUT; }
static void uv_pipe_read_error(uv_pipe_t* handle, int error, uv_buf_t buf) { /* If there is an eof timer running, we don't need it any more, */ /* so discard it. */ eof_timer_destroy(handle); uv_read_stop((uv_stream_t*) handle); uv_set_sys_error(error); handle->read_cb((uv_stream_t*)handle, -1, buf); }
static void uv_pipe_read_eof(uv_pipe_t* handle, uv_buf_t buf) { /* If there is an eof timer running, we don't need it any more, */ /* so discard it. */ eof_timer_destroy(handle); handle->flags |= UV_HANDLE_EOF; uv_read_stop((uv_stream_t*) handle); uv_set_error(UV_EOF, 0); handle->read_cb((uv_stream_t*) handle, -1, uv_null_buf_); }
static void uv_pipe_read_error(uv_loop_t* loop, uv_pipe_t* handle, int error, uv_buf_t buf) { /* If there is an eof timer running, we don't need it any more, */ /* so discard it. */ eof_timer_destroy(handle); uv_read_stop((uv_stream_t*) handle); uv__set_sys_error(loop, error); if (handle->read2_cb) { handle->read2_cb(handle, -1, buf, UV_UNKNOWN_HANDLE); } else { handle->read_cb((uv_stream_t*)handle, -1, buf); } }
static void uv_pipe_read_eof(uv_loop_t* loop, uv_pipe_t* handle, uv_buf_t buf) { /* If there is an eof timer running, we don't need it any more, */ /* so discard it. */ eof_timer_destroy(handle); handle->flags &= ~UV_HANDLE_READABLE; uv_read_stop((uv_stream_t*) handle); uv__set_artificial_error(loop, UV_EOF); if (handle->read2_cb) { handle->read2_cb(handle, -1, uv_null_buf_, UV_UNKNOWN_HANDLE); } else { handle->read_cb((uv_stream_t*) handle, -1, uv_null_buf_); } }