// Is this process currently signaled? bool StdSchedulerProc::IsSignaled() { // Initialize file descriptor sets std::vector<struct pollfd> fds; // Get file descriptors GetFDs(fds); // Test return poll(&fds[0], fds.size(), 0) > 0; }
// Is this process currently signaled? bool StdSchedulerProc::IsSignaled() { #ifdef STDSCHEDULER_USE_EVENTS return GetEvent() && WaitForSingleObject(GetEvent(), 0) == WAIT_OBJECT_0; #else // Initialize file descriptor sets fd_set fds[2]; int iMaxFDs = 0; FD_ZERO(&fds[0]); FD_ZERO(&fds[1]); // Get file descriptors GetFDs(fds, &iMaxFDs); // Timeout immediatly timeval to = {0, 0}; // Test return select(iMaxFDs + 1, &fds[0], &fds[1], NULL, &to) > 0; #endif }