Alan Cox wrote: > > If/when Linux gets async IO that will be true, but until then there's no > > way to queue multiple reads, so mmap() is needed for that reason, as > > well as for backwards compatability (although I guess we *could* break > > compatability in 2.5). > > Why do you need to queue multiple reads If mmap is the performance interfaces then you don't, but you need *some* mechanism for queued "reads", and the deep reason is because Linux is not hard real-time. Of course you also need at least one "queued" read to take advantage of acquisition time. > (and a threaded app can do it btw in > fact glibc 2.2 has full aio using threads) - you have a whole frame to get > around to the next one plus any internal buffering Sure, and you can get around lack of select() support with threads too. But it's not very convenient or efficient. Ben