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

Method write_more

handlersocket/hstcpsvr_worker.cpp:126–147  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

124}
125
126bool
127hstcpsvr_conn::write_more(bool *more_r)
128{
129 if (write_finished || cstate.writebuf.size() == 0) {
130 return false;
131 }
132 const size_t wlen = cstate.writebuf.size();
133 ssize_t len = send(fd.get(), cstate.writebuf.begin(), wlen, MSG_NOSIGNAL);
134 if (len <= 0) {
135 if (len == 0 || !nonblocking || errno != EWOULDBLOCK) {
136 cstate.writebuf.clear();
137 write_finished = true;
138 }
139 return false;
140 }
141 cstate.writebuf.erase_front(len);
142 /* FIXME: reallocate memory if too large */
143 if (more_r) {
144 *more_r = (static_cast<size_t>(len) == wlen);
145 }
146 return true;
147}
148
149bool
150hstcpsvr_conn::read_more(bool *more_r)

Callers 2

run_one_nbMethod · 0.80
run_one_epMethod · 0.80

Calls 5

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

Tested by

no test coverage detected