static device_status_t tilib_poll(device_t dev_base) { struct tilib_device *dev = (struct tilib_device *)dev_base; ctrlc_reset(); if ((usleep(50000) < 0) || ctrlc_check()) return DEVICE_STATUS_INTR; if (event_fetch(dev) & MID_HALT_ANY) return DEVICE_STATUS_HALTED; return DEVICE_STATUS_RUNNING; }
static int sockets_wait(DWORD timeout) { DWORD r; error_save = WSAGetLastError(); if (ctrlc_check()) error_save = ERROR_OPERATION_ABORTED; if (error_save != WSAEWOULDBLOCK) return -1; r = WaitForSingleObject(ctrlc_win32_event(), timeout); if (r == WAIT_TIMEOUT) { error_save = WAIT_TIMEOUT; return -1; } return 0; }