// 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;
}
示例#2
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
}