uv_buf_t* bufs = &buf;
size_t count = 1;
int err = wrap->callbacks()->TryWrite(&bufs, &count);
- if (err == 0)
+ if (err != 0)
+ goto done;
+ if (count == 0)
goto done;
assert(count == 1);
size_t count = 1;
err = wrap->callbacks()->TryWrite(&bufs, &count);
+ // Failure
+ if (err != 0)
+ goto done;
+
// Success
- if (err == 0)
+ if (count == 0)
goto done;
- // Failure, or partial write
+ // Partial write
assert(count == 1);
}
size_t vcount = *count;
err = uv_try_write(wrap()->stream(), vbufs, vcount);
+ if (err == UV_ENOSYS)
+ return 0;
if (err < 0)
return err;
*bufs = vbufs;
*count = vcount;
- if (vcount == 0)
- return 0;
- else
- return -1;
+ return 0;
}