[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15990: Bug-report: `sleep-for' doesn't sleep for expected period, ma
From: |
Teika Kazura |
Subject: |
bug#15990: Bug-report: `sleep-for' doesn't sleep for expected period, maybe after async process invocation. |
Date: |
Thu, 28 Nov 2013 15:52:35 +0900 (JST) |
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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bug#15990: Bug-report: `sleep-for' doesn't sleep for expected period, maybe after async process invocation.,
Teika Kazura <=