17

On Windows Sleep(0) yields thread control without specifying a minimum time, (see here) But on Linux and POSIX sleep(0) from unistd.h is just ignored.

What's the best way to get Sleep(0) like behaviour in Linux?

Community
  • 1
  • 1
Chris Huang-Leaver
  • 6,059
  • 6
  • 41
  • 67

1 Answers1

18

Try sched_yield from "sched.h", that is created just for what you want to do.

If that doesn't work for whatever reason - try usleep(1) - That will yield at least 1 microsecond delay (may be more), which in turn triggers a context switch (if any thread is waiting).

Chris Huang-Leaver
  • 6,059
  • 6
  • 41
  • 67
littleadv
  • 20,100
  • 2
  • 36
  • 50