+ if(!status) {
+ if(GetLastError() == ERROR_IO_PENDING) {
+ WaitForSingleObject(overlapped.hEvent, INFINITE);
+ if(!GetOverlappedResult(device_handle, &overlapped, &len, FALSE))
+ continue;
+ } else {
+ logger(LOG_ERR, "Error while reading from %s %s: %s", device_info,
+ device, strerror(errno));
+ return -1;
+ }
+ }
+
+ EnterCriticalSection(&mutex);
+ packet.len = len;
+ packet.priority = 0;
+ route(myself, &packet);
+ LeaveCriticalSection(&mutex);
+ }
+}
+
+static bool setup_device(void) {