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

ENGINE-781
Volker Birk 3 years ago
parent dc721a18b2
commit e658bbaf0e

@ -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

@ -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