All are now robust against overflow, NAN or negative argument. Passing seconds=0 calls the OS scheduler, offering to yield. Passing seconds>0 delays at least the requested time, up to a limit which usually depends on the OS tick rate.