Felix Winkelmann <felix.winkelm...@bevuta.com> writes:

> From: Andy Bennett <andy...@ashurst.eu.org>
> Subject: mmap (was: Re: [Chicken-hackers] library unit restructuring)
> Date: Wed, 09 Jul 2014 14:56:38 +0100
>
>> Hi,
>> 
>>>   - memory-mapped-files
>> 
>> Without wishing to hijack the entire thread, as an aside, is there any
>> way of making memory mapped files play nicely with the CHICKEN scheduler
>> and threading model? It's possible for memory mapped files to cause a
>> page fault which will then wait for I/O and, as I understand it, that
>> will block the entire runtime.
>
> Since nobody replied to this - I wouldn't know how this is done.  I
> guess there is some UNIX arcana that allows one to implement
> non-blocking behaviour. As memory access will cause the blocking, we
> can probably not check for this via poll/select. Do you have any
> information about this? Is it possible to test whether a page is in
> memory, and whether one can do the equivalent of a poll/select on
> this?

IIRC mmap's flags MAP_NONBLOCK and MAP_POPULATE are linux specific and
don't exist in all our other platforms, notably the *BSDs. Since mmap
calls return a pointer to memory, the usual select/poll syscalls cannot
be applied to it.

(Also note that MAP_POPULATE is ignored in recent kernels even).

Andy, can you elaborate on the blocking scenario you are seeing?

HTH,

Christian


_______________________________________________
Chicken-hackers mailing list
Chicken-hackers@nongnu.org
https://lists.nongnu.org/mailman/listinfo/chicken-hackers

Reply via email to