> Date: Mon, 24 Dec 2018 16:28:20 -0500 > From: Scott Cheloha <scottchel...@gmail.com> > > ok?
How can this happen? Only if the user asks to sleep for exactly 0ns. That is a bit nonsensical. Currently we punish such a process by making it sleep. Which means that other processes can run. Why do you want to change this? > Index: sys/kern/kern_time.c > =================================================================== > RCS file: /cvs/src/sys/kern/kern_time.c,v > retrieving revision 1.103 > diff -u -p -r1.103 kern_time.c > --- sys/kern/kern_time.c 28 May 2018 18:05:42 -0000 1.103 > +++ sys/kern/kern_time.c 24 Dec 2018 21:21:40 -0000 > @@ -288,13 +288,18 @@ sys_nanosleep(struct proc *p, void *v, r > if (rmtp) > getnanouptime(&sts); > > + if (!timespecisset(&rqt)) { > + error = 0; > + goto out; > + } > + > error = tsleep(&nanowait, PWAIT | PCATCH, "nanosleep", > MAX(1, tstohz(&rqt))); > if (error == ERESTART) > error = EINTR; > if (error == EWOULDBLOCK) > error = 0; > - > +out: > if (rmtp) { > getnanouptime(&ets); > > >