20 _pipes.push_back (pipe_);
21 _pipes.swap (_active, _pipes.size () - 1);
31 if (
index < _active) {
33 _pipes.swap (
index, _active);
34 if (_current == _active)
43 _pipes.swap (_pipes.index (pipe_), _active);
49 return recvpipe (msg_,
NULL);
55 int rc = msg_->
close ();
62 const bool fetched = _pipes[_current]->read (msg_);
69 *pipe_ = _pipes[_current];
72 _current = (_current + 1) % _active;
83 _pipes.swap (_current, _active);
84 if (_current == _active)
106 while (_active > 0) {
107 if (_pipes[_current]->check_read ())
112 _pipes.swap (_current, _active);
113 if (_current == _active)