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

Function win_io_once

src/daemon/ipc.c:5724–5750  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5722}
5723
5724static int win_io_once(cbm_daemon_ipc_connection_t *connection, void *buffer, DWORD length,
5725 bool writing, uint64_t deadline_ms, DWORD *transferred_out) {
5726 OVERLAPPED overlapped;
5727 memset(&overlapped, 0, sizeof(overlapped));
5728 overlapped.hEvent = CreateEventW(NULL, TRUE, FALSE, NULL);
5729 if (!overlapped.hEvent) {
5730 return -1;
5731 }
5732 DWORD transferred = 0;
5733 BOOL completed = writing
5734 ? WriteFile(connection->handle, buffer, length, &transferred, &overlapped)
5735 : ReadFile(connection->handle, buffer, length, &transferred, &overlapped);
5736 int result = 1;
5737 if (!completed) {
5738 if (GetLastError() != ERROR_IO_PENDING) {
5739 result = -1;
5740 } else {
5741 result = win_overlapped_wait(connection->handle, &overlapped,
5742 win_deadline_remaining(deadline_ms), &transferred);
5743 }
5744 }
5745 (void)CloseHandle(overlapped.hEvent);
5746 if (result == 1) {
5747 *transferred_out = transferred;
5748 }
5749 return result;
5750}
5751
5752static int connection_read_full(cbm_daemon_ipc_connection_t *connection, void *buffer,
5753 size_t length, uint64_t deadline_ms) {

Callers 3

connection_read_fullFunction · 0.85
connection_write_fullFunction · 0.85

Calls 2

win_overlapped_waitFunction · 0.85
win_deadline_remainingFunction · 0.85

Tested by

no test coverage detected