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

Function worker_unique_file

src/mcp/index_supervisor.c:547–577  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

545}
546
547static bool worker_unique_file(char *out, size_t out_size, const char *kind) {
548 if (!out || out_size == 0 || !kind || !kind[0]) {
549 return false;
550 }
551 char cache_copy[INDEX_WORKER_PATH_CAP] = {0};
552 bool have_cache = worker_cache_dir(cache_copy);
553 int written;
554 if (have_cache) {
555 char directory[INDEX_WORKER_PATH_CAP];
556 written = snprintf(directory, sizeof(directory), "%s/logs", cache_copy);
557 if (written <= 0 || written >= (int)sizeof(directory) || !cbm_mkdir_p(directory, 0700)) {
558 return false;
559 }
560 written = snprintf(out, out_size, "%s/.worker-%s-XXXXXX", directory, kind);
561 } else {
562 written = snprintf(out, out_size, ".worker-%s-XXXXXX", kind);
563 }
564 if (written <= 0 || written >= (int)out_size) {
565 out[0] = '\0';
566 return false;
567 }
568 worker_tmp_lock();
569 int descriptor = cbm_mkstemp(out);
570 worker_tmp_unlock();
571 if (descriptor < 0) {
572 out[0] = '\0';
573 return false;
574 }
575 (void)worker_close(descriptor);
576 return true;
577}
578
579static bool worker_result_succeeded(const cbm_index_worker_result_t *result) {
580 return result && result->outcome == CBM_PROC_CLEAN && !result->cancellation_requested &&

Callers 1

Calls 5

worker_cache_dirFunction · 0.85
cbm_mkdir_pFunction · 0.85
worker_tmp_lockFunction · 0.85
cbm_mkstempFunction · 0.85
worker_tmp_unlockFunction · 0.85

Tested by

no test coverage detected