X-Git-Url: http://xvm.mit.edu/gitweb/invirt/third/libt4.git/blobdiff_plain/ab6c1548ac2b1907bca92c8ce43e919c1a649a6f..c279db4240a3a3c30f069ab9dea8055cf94280da:/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: