Subject: bug#15990: closed (Re: bug#20935: sleep-for wakes prematurely due to process output)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 30 Jun 2015 16:12:06 +0000

Your bug report

#20935: Bug-report: `sleep-for' doesn't sleep for expected period, maybe after async process invocation.

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
20935: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20935
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#20935: sleep-for wakes prematurely due to process output
From: Eli Zaretskii <[email-masked]>
To: Glenn Morris <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Tue, 30 Jun 2015 19:11:47 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Glenn Morris <[email-masked]>
> Date: Mon, 29 Jun 2015 23:41:18 -0400
> Cc: [email-masked]
> 
> Francis Litterio wrote:
> 
> > On Windows, using the latest sources, function sleep-for is woken
> > prematurely by process (or network connection) output.  I'm not sure if
> > this also happens on UNIX,
> 
> Yes, it's the unaddressed http://debbugs.gnu.org/15990 .

Sorry, I completely forgot about that problem (it was still in my
queue).

Now fixed in commit 3bea77f.

Subject: Bug-report: `sleep-for' doesn't sleep for expected period, maybe after async process invocation.
From: Teika Kazura <[email-masked]>
To: [email-masked]
Date: Thu, 28 Nov 2013 15:52:35 +0900 (JST)
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi, Emacs developers.

* Bug description
`sleep-for' ends too early, by not sleeping for the expected time. It's speculated that it's caused by a termination of an asynchronous process. [1]

This bug does not always reproduce, but it often does.

[1] http://stackoverflow.com/questions/14698081/elisp-sleep-for-doesnt-block-when-running-a-test-in-ert

* Environment
Gentoo Linux, Emacs-24.3 and 24.1.
Debian Linux, Emacs-23.2

MacOS X, too, according to a page. [1]

* Code to reproduce the bug
Do "emacs -q" and run the code below. It uses an external Unix command "sleep".
It has a line `(sleep-for 3)', but it *often* ends immediately. The last line judges the result so that you don't need a timer watch to confirm.

As far as I tested, the bug shows 100%, but if the bug doesn't reproduce, well, please try several times, or another environment.  ;-) (With the original code where I first met this problem, the bug occurrence rate exceeds 50%.)

------------------------------------------------------------------------
(let ((buf "*sleep-for test*")
      (now (cadr (current-time))))
  (start-process "test" buf "sleep" "0.1")
  (sleep-for 3)
  (message "This should be t: %s" (< now (- (cadr (current-time)) 3))))
------------------------------------------------------------------------

* Others
The following bug report may be related. Not sure.
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6202

I think I can compile the bzr latest snapshot. (But it takes me 20 min. to compile 24.3. :P)

Thank you very much. Best regards,

Teika (Teika kazura)