I don't know how useful this is, but I though I'd throw in a test I use as
we've encountered this a few times as well in the posix egg:


(use posix srfi-18)

(define mythread
  (thread-start!
   (lambda ()
     (let loop ()
       (define start (current-milliseconds))
       (thread-sleep! 0.1)
       (define elap (- (current-milliseconds) start))
       (if (> elap 500) ;; the 0.1 second sleep took > 0.5 seconds!
           (print "OBS! elap = " elap)
           (loop))))))

(print "cmd: sleep 1 ; echo hi" (with-input-from-pipe "sleep 1.5 ; echo hi"
read-string))
(thread-join! mythread)

$ csi -version
Version 4.9.0.1 (stability/4.9.0) (rev 8b3189b)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
bootstrapped 2014-06-07
$ csi -s blocking-io-test.scm
cmd: sleep 1 ; echo hihi

OBS! elap = 1512.0


And this is a code-snippet
<http://paste.call-cc.org/paste?id=69742cf6f54afbe2401e0ee8c67ade35a3d6a07a> we
use to solve it.


K.

On Fri, Jul 1, 2016 at 6:53 PM, Matt Welland <mattrwell...@gmail.com> wrote:

>
>
> On Fri, Jul 1, 2016 at 3:11 AM, Andy Bennett <andy...@ashurst.eu.org>
> wrote:
>
>> Hi,
>>
>> > And of course, reads of files on the file
>> > system never block at all
>>
>> A read from a file can block when the operating system needs to go to
>> disk for the data. This happens when the buffer empties and it cannot be
>> refilled before the next read call.
>>
>
> I don't know if it applies to this discussion but read blocking can be
> quite a pain when a network fileserver such as NFS goes offline. It would
> be nice if other threads would continue so that the program could detect
> the issue and potentially take appropriate action such as let the user know
> *why* the program is hung.
>
>
>>
>>
>>
>>
>>
>> Regards,
>> @ndy
>>
>> --
>> andy...@ashurst.eu.org
>> http://www.ashurst.eu.org/
>> 0290 DA75 E982 7D99 A51F  E46A 387A 7695 7EBA 75FF
>>
>>
>> _______________________________________________
>> Chicken-users mailing list
>> Chicken-users@nongnu.org
>> https://lists.nongnu.org/mailman/listinfo/chicken-users
>>
>
>
> _______________________________________________
> Chicken-users mailing list
> Chicken-users@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/chicken-users
>
>
_______________________________________________
Chicken-users mailing list
Chicken-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to