File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -1763,12 +1763,16 @@ struct server_response {
1763
1763
std::unique_lock<std::mutex> lock (mutex_results);
1764
1764
condition_results.wait (lock, [&]{
1765
1765
if (!running) {
1766
- SRV_DBG (" %s : queue result stop\n " , __func__);
1767
- std::terminate (); // we cannot return here since the caller is HTTP code
1766
+ return true ;
1768
1767
}
1769
1768
return !queue_results.empty ();
1770
1769
});
1771
-
1770
+ if (!running) {
1771
+ SRV_DBG (" %s : queue result stop\n " , __func__);
1772
+ auto res = std::make_unique<server_task_result_error>();
1773
+ res->err_msg = " server stopped" ;
1774
+ return res;
1775
+ }
1772
1776
for (size_t i = 0 ; i < queue_results.size (); i++) {
1773
1777
if (id_tasks.find (queue_results[i]->id ) != id_tasks.end ()) {
1774
1778
server_task_result_ptr res = std::move (queue_results[i]);
@@ -1798,7 +1802,9 @@ struct server_response {
1798
1802
std::cv_status cr_res = condition_results.wait_for (lock, std::chrono::seconds (timeout));
1799
1803
if (!running) {
1800
1804
SRV_DBG (" %s : queue result stop\n " , __func__);
1801
- std::terminate (); // we cannot return here since the caller is HTTP code
1805
+ auto res = std::make_unique<server_task_result_error>();
1806
+ res->err_msg = " server stopped" ;
1807
+ return res;
1802
1808
}
1803
1809
if (cr_res == std::cv_status::timeout) {
1804
1810
return nullptr ;
You can’t perform that action at this time.
0 commit comments