Browse Source

back() and front() have defined behaviour now when queue is empty

ENGINE-781
Volker Birk 5 years ago
parent
commit
e658bbaf0e
  1. 8
      Adapter.cc
  2. 8
      locked_queue.hh

8
Adapter.cc

@ -147,7 +147,13 @@ namespace pEp {
bool in_shutdown()
{
SYNC_EVENT ev = q.back();
SYNC_EVENT ev;
try {
ev = q.back();
}
catch (std::underflow_error&) {
return false;
}
if (ev)
return false;
else

8
locked_queue.hh

@ -38,17 +38,21 @@ namespace utility
_q.clear();
}
// undefined behavior when queue empty
// defined behavior when queue empty
T back()
{
Lock lg(_mtx);
if (_q.empty())
throw std::underflow_error("queue empty");
return _q.back();
}
// undefined behavior when queue empty
// defined behavior when queue empty
T front()
{
Lock lg(_mtx);
if (_q.empty())
throw std::underflow_error("queue empty");
return _q.front();
}

Loading…
Cancel
Save