Error uv11::write(WriteRequest& req, Stream& stream, Buffer const bufs[], unsigned int nbufs, WriteCb const& write_cb) { req.write_cb = write_cb; int s = uv_write( &req.Get(), &stream.GetStream(), bufs, nbufs, [] (uv_write_t* r, int status) { WriteRequest* w = reinterpret_cast<WriteRequest*>(r->data); auto w_cb = w->write_cb; w->write_cb = nullptr; w_cb(*w, make_error(status)); } ); if (s) req.write_cb = nullptr; return make_error(s); }