| 190 | |
| 191 | |
| 192 | Future<size_t> PollSocketImpl::send(const char* data, size_t size) |
| 193 | { |
| 194 | CHECK(size > 0); // TODO(benh): Just return 0 if `size` is 0? |
| 195 | |
| 196 | // Need to hold a copy of `this` so that the underlying socket |
| 197 | // doesn't end up getting reused before we return. |
| 198 | auto self = shared(this); |
| 199 | |
| 200 | // TODO(benh): Reuse `io::write`? Or is `net::send` and |
| 201 | // `MSG_NOSIGNAL` critical here? |
| 202 | return io::write(get(), data, size).then([self](size_t length) { |
| 203 | return length; |
| 204 | }); |
| 205 | } |
| 206 | |
| 207 | |
| 208 | Future<size_t> PollSocketImpl::sendfile(int_fd fd, off_t offset, size_t size) |