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 {
17631763 std::unique_lock<std::mutex> lock (mutex_results);
17641764 condition_results.wait (lock, [&]{
17651765 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 ;
17681767 }
17691768 return !queue_results.empty ();
17701769 });
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+ }
17721776 for (size_t i = 0 ; i < queue_results.size (); i++) {
17731777 if (id_tasks.find (queue_results[i]->id ) != id_tasks.end ()) {
17741778 server_task_result_ptr res = std::move (queue_results[i]);
@@ -1798,7 +1802,9 @@ struct server_response {
17981802 std::cv_status cr_res = condition_results.wait_for (lock, std::chrono::seconds (timeout));
17991803 if (!running) {
18001804 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;
18021808 }
18031809 if (cr_res == std::cv_status::timeout) {
18041810 return nullptr ;
You can’t perform that action at this time.
0 commit comments