bug#53139: sleep return value error, with pselect6 system call on Linux

Christopher Baines <[email protected]>
Newsgroups gmane.lisp.guile.bugs
Message-ID <[email protected]>
The sleep procedure is documented as returning 0 when it's not
interrupted by a signal.

This behaviour seems to have changed in guile as distributed by GNU Guix
(see the time-machine commands below). Previously, guile used the select
system call which seemed to change the timeout argument to the time
left. The updated guile uses the pselect6 system call, which doesn't do
this.

→ guix time-machine --commit=b603554ed044638dd40b6863d5dada59eefe03b8 -- environment --ad-hoc guile -- guile -c '(peek (sleep 5))'

;;; (0)

select(4, [3], NULL, NULL, {tv_sec=5, tv_usec=0}) = 0 (Timeout)

→ guix time-machine --commit=6dffced09ecda024e0884e352778c221ad066fd6 -- environment --ad-hoc guile -- guile -c '(peek (sleep 5))'

;;; (5)

pselect6(4, [3], NULL, NULL, {tv_sec=5, tv_nsec=0}, NULL) = 0 (Timeout)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.