unix: fix argument check / write request init order

This commit is contained in:
Ben Noordhuis 2011-09-14 01:42:44 +02:00
parent 21936ebf24
commit 066dc6bcc8

View File

@ -635,6 +635,16 @@ int uv_write(uv_write_t* req, uv_stream_t* stream, uv_buf_t bufs[], int bufcnt,
uv_write_cb cb) {
int empty_queue;
assert((stream->type == UV_TCP || stream->type == UV_NAMED_PIPE)
&& "uv_write (unix) does not yet support other types of streams");
if (stream->fd < 0) {
uv_err_new(stream->loop, EBADF);
return -1;
}
empty_queue = (stream->write_queue_size == 0);
/* Initialize the req */
uv__req_init((uv_req_t*) req);
req->cb = cb;
@ -642,16 +652,6 @@ int uv_write(uv_write_t* req, uv_stream_t* stream, uv_buf_t bufs[], int bufcnt,
req->type = UV_WRITE;
ngx_queue_init(&req->queue);
assert((stream->type == UV_TCP || stream->type == UV_NAMED_PIPE)
&& "uv_write (unix) does not yet support other types of streams");
empty_queue = (stream->write_queue_size == 0);
if (stream->fd < 0) {
uv_err_new(stream->loop, EBADF);
return -1;
}
if (bufcnt < UV_REQ_BUFSML_SIZE) {
req->bufs = req->bufsml;
}