MCPcopy Create free account
hub / github.com/DeNA/HandlerSocket-Plugin-for-MySQL / request_send

Method request_send

libhsclient/hstcpcli.cpp:293–323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

291}
292
293int
294hstcpcli::request_send()
295{
296 if (error_code < 0) {
297 return error_code;
298 }
299 clear_error();
300 if (fd.get() < 0) {
301 close();
302 return set_error(-1, "write: closed");
303 }
304 if (num_req_bufd == 0 || num_req_sent > 0 || num_req_rcvd > 0) {
305 close();
306 return set_error(-1, "request_send: protocol out of sync");
307 }
308 const size_t wrlen = writebuf.size();
309 const ssize_t r = send(fd.get(), writebuf.begin(), wrlen, MSG_NOSIGNAL);
310 if (r <= 0) {
311 close();
312 return set_error(-1, r < 0 ? "write: failed" : "write: eof");
313 }
314 writebuf.erase_front(r);
315 if (static_cast<size_t>(r) != wrlen) {
316 close();
317 return set_error(-1, "write: incomplete");
318 }
319 num_req_sent = num_req_bufd;
320 num_req_bufd = 0;
321 DBG(fprintf(stderr, "REQSEND 0\n"));
322 return 0;
323}
324
325int
326hstcpcli::response_recv(size_t& num_flds_r)

Callers 8

hstcpcli_mainFunction · 0.80
runMethod · 0.80
op_insertMethod · 0.80
op_deleteMethod · 0.80
op_updateMethod · 0.80
op_readMethod · 0.80
op_readnolockMethod · 0.80
test_11Method · 0.80

Calls 4

erase_frontMethod · 0.80
getMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45

Tested by 1

test_11Method · 0.64