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

Function cbm_subprocess_run

src/foundation/subprocess.c:1451–1474  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1449}
1450
1451int cbm_subprocess_run(const cbm_proc_opts_t *opts, cbm_proc_result_t *out) {
1452 cbm_proc_result_t local;
1453 if (!out) {
1454 out = &local;
1455 }
1456 cbm_subprocess_result_init(out);
1457
1458 cbm_subprocess_t *process = NULL;
1459 if (cbm_subprocess_spawn(opts, &process) != 0) {
1460 return -1;
1461 }
1462 for (;;) {
1463 cbm_proc_poll_t state = cbm_subprocess_poll(process, out);
1464 if (state == CBM_PROC_POLL_TERMINAL) {
1465 bool supervised = out->tree_quiesced && !out->supervision_failed;
1466 cbm_subprocess_destroy(process);
1467 return supervised ? 0 : -1;
1468 }
1469 /* A valid owned handle has no ERROR state; invalid-argument errors are
1470 * rejected before this compatibility loop is entered. */
1471 const struct timespec delay = {0, 10000000L}; /* 10 ms */
1472 (void)cbm_nanosleep(&delay, NULL);
1473 }
1474}

Callers 5

mcp_test_gitFunction · 0.85
run_shFunction · 0.85
test_subprocess.cFile · 0.85
ipc_test_win_lock_childFunction · 0.85
app_test_gitFunction · 0.85

Calls 5

cbm_subprocess_spawnFunction · 0.85
cbm_subprocess_pollFunction · 0.85
cbm_subprocess_destroyFunction · 0.85
cbm_nanosleepFunction · 0.85

Tested by 4

mcp_test_gitFunction · 0.68
run_shFunction · 0.68
ipc_test_win_lock_childFunction · 0.68
app_test_gitFunction · 0.68