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

Function cbm_subprocess_run

src/foundation/subprocess.c:1437–1460  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1435}
1436
1437int cbm_subprocess_run(const cbm_proc_opts_t *opts, cbm_proc_result_t *out) {
1438 cbm_proc_result_t local;
1439 if (!out) {
1440 out = &local;
1441 }
1442 cbm_subprocess_result_init(out);
1443
1444 cbm_subprocess_t *process = NULL;
1445 if (cbm_subprocess_spawn(opts, &process) != 0) {
1446 return -1;
1447 }
1448 for (;;) {
1449 cbm_proc_poll_t state = cbm_subprocess_poll(process, out);
1450 if (state == CBM_PROC_POLL_TERMINAL) {
1451 bool supervised = out->tree_quiesced && !out->supervision_failed;
1452 cbm_subprocess_destroy(process);
1453 return supervised ? 0 : -1;
1454 }
1455 /* A valid owned handle has no ERROR state; invalid-argument errors are
1456 * rejected before this compatibility loop is entered. */
1457 const struct timespec delay = {0, 10000000L}; /* 10 ms */
1458 (void)cbm_nanosleep(&delay, NULL);
1459 }
1460}

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