X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/03b35a9a1bd1f583e32b27d260b223a0989d6c75..02967a43024ce81912cd1ec96a800397457f8066:/rpc/fifo.h diff --git a/rpc/fifo.h b/rpc/fifo.h index dfb4d05..9e4933a 100644 --- a/rpc/fifo.h +++ b/rpc/fifo.h @@ -3,7 +3,6 @@ #include "types.h" -// blocks enq() and deq() when queue is FULL or EMPTY template class fifo { public: @@ -21,19 +20,15 @@ class fifo { return true; } - void deq(T * e) { + T deq() { lock ml(m_); while(q_.empty()) non_empty_c_.wait(ml); - *e = q_.front(); + T t = q_.front(); q_.pop_front(); if (max_ && q_.size() < max_) has_space_c_.notify_one(); - } - - bool size() { - lock ml(m_); - return q_.size(); + return t; } private: