MCPcopy Create free account
hub / github.com/apache/trafficserver / do_io_read

Method do_io_read

src/proxy/Transform.cc:298–326  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

296 -------------------------------------------------------------------------*/
297
298VIO *
299TransformTerminus::do_io_read(Continuation *c, int64_t nbytes, MIOBuffer *buf)
300{
301 m_read_vio.op = VIO::READ;
302 m_read_vio.set_continuation(c);
303 m_read_vio.nbytes = nbytes;
304 m_read_vio.ndone = 0;
305 m_read_vio.vc_server = this;
306
307 if (buf != nullptr) {
308 _read_disabled = false;
309 m_read_vio.set_writer(buf);
310 if (ink_atomic_increment(&m_event_count, 1) < 0) {
311 ink_assert(!"not reached");
312 }
313 Dbg(dbg_ctl_transform, "[TransformTerminus::do_io_read] event_count %d", m_event_count);
314
315 _read_event = this_ethread()->schedule_imm_local(this);
316 } else {
317 _read_disabled = true;
318 if (_read_event != nullptr) {
319 _read_event->cancel();
320 _read_event = nullptr;
321 }
322 m_read_vio.buffer.clear();
323 }
324
325 return &m_read_vio;
326}
327
328/*-------------------------------------------------------------------------
329 -------------------------------------------------------------------------*/

Callers 1

handle_eventMethod · 0.45

Calls 7

ink_atomic_incrementFunction · 0.85
this_ethreadFunction · 0.85
set_writerMethod · 0.80
schedule_imm_localMethod · 0.80
set_continuationMethod · 0.45
cancelMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected