> 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 (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