| 1375 | } |
| 1376 | |
| 1377 | static bool runtime_worker_handle_disconnect(cbm_daemon_runtime_worker_t *worker, uint32_t length) { |
| 1378 | if (length != 0) { |
| 1379 | return false; |
| 1380 | } |
| 1381 | cbm_daemon_runtime_service_t *service = worker->service; |
| 1382 | cbm_mutex_lock(&service->mutex); |
| 1383 | worker->final_response_inflight = true; |
| 1384 | cbm_mutex_unlock(&service->mutex); |
| 1385 | runtime_worker_disconnect(worker); |
| 1386 | bool sent = runtime_worker_send_status(worker, CBM_DAEMON_RUNTIME_OP_DISCONNECT, true); |
| 1387 | cbm_mutex_lock(&service->mutex); |
| 1388 | worker->final_response_inflight = false; |
| 1389 | cbm_mutex_unlock(&service->mutex); |
| 1390 | return sent; |
| 1391 | } |
| 1392 | |
| 1393 | static void runtime_worker_finish(cbm_daemon_runtime_worker_t *worker) { |
| 1394 | cbm_daemon_runtime_service_t *service = worker->service; |
no test coverage detected