MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cbm_daemon_runtime_request_stop

Function cbm_daemon_runtime_request_stop

src/daemon/runtime.c:2578–2602  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2576}
2577
2578bool cbm_daemon_runtime_request_stop(const cbm_daemon_ipc_endpoint_t *endpoint,
2579 const cbm_daemon_build_identity_t *identity,
2580 uint32_t timeout_ms,
2581 cbm_daemon_runtime_stop_result_t *result_out) {
2582 if (!result_out) {
2583 return false;
2584 }
2585 memset(result_out, 0, sizeof(*result_out));
2586 uint8_t *payload = NULL;
2587 if (!runtime_control_request_send(endpoint, identity, CBM_DAEMON_RUNTIME_OP_STOP, timeout_ms,
2588 CBM_DAEMON_STOP_RESPONSE_SIZE, &payload)) {
2589 return false;
2590 }
2591 result_out->accepted = (payload[1] & 0x01U) != 0U;
2592 result_out->busy = (payload[1] & 0x02U) != 0U;
2593 result_out->committed_clients = (uint16_t)(((uint16_t)payload[2] << 8) | payload[3]);
2594 result_out->client_count = payload[4] > CBM_DAEMON_CONTROL_CLIENT_CAP
2595 ? (uint8_t)CBM_DAEMON_CONTROL_CLIENT_CAP
2596 : payload[4];
2597 for (size_t index = 0; index < CBM_DAEMON_CONTROL_CLIENT_CAP; index++) {
2598 result_out->client_pids[index] = runtime_control_read_u32(payload + 8U + index * 4U);
2599 }
2600 free(payload);
2601 return true;
2602}
2603
2604cbm_daemon_runtime_client_t *cbm_daemon_runtime_client_connect(
2605 const cbm_daemon_ipc_endpoint_t *endpoint, const cbm_daemon_build_identity_t *identity,

Callers 2

main_run_daemon_ctlFunction · 0.85

Calls 2

runtime_control_read_u32Function · 0.85

Tested by

no test coverage detected