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

Function worker_unique_file

src/mcp/index_supervisor.c:567–598  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

565}
566
567static bool worker_unique_file(char *out, size_t out_size, const char *kind) {
568 if (!out || out_size == 0 || !kind || !kind[0]) {
569 return false;
570 }
571 char cache_copy[INDEX_WORKER_PATH_CAP] = {0};
572 bool have_cache = worker_cache_dir(cache_copy);
573 int written;
574 if (have_cache) {
575 char directory[INDEX_WORKER_PATH_CAP];
576 written = snprintf(directory, sizeof(directory), "%s/logs", cache_copy);
577 if (written <= 0 || written >= (int)sizeof(directory) ||
578 !cbm_mkdir_p_ex(directory, 0700, CBM_MKDIR_FOLLOW_OWNED)) {
579 return false;
580 }
581 written = snprintf(out, out_size, "%s/.worker-%s-XXXXXX", directory, kind);
582 } else {
583 written = snprintf(out, out_size, ".worker-%s-XXXXXX", kind);
584 }
585 if (written <= 0 || written >= (int)out_size) {
586 out[0] = '\0';
587 return false;
588 }
589 worker_tmp_lock();
590 int descriptor = cbm_mkstemp(out);
591 worker_tmp_unlock();
592 if (descriptor < 0) {
593 out[0] = '\0';
594 return false;
595 }
596 (void)worker_close(descriptor);
597 return true;
598}
599
600static bool worker_result_succeeded(const cbm_index_worker_result_t *result) {
601 return result && result->outcome == CBM_PROC_CLEAN && !result->cancellation_requested &&

Callers 1

Calls 5

worker_cache_dirFunction · 0.85
cbm_mkdir_p_exFunction · 0.85
worker_tmp_lockFunction · 0.85
cbm_mkstempFunction · 0.85
worker_tmp_unlockFunction · 0.85

Tested by

no test coverage detected