new aio engine

Christian Ambach ambi at
Thu Jul 19 06:00:13 MDT 2012

On 07/16/2012 05:14 PM, Volker Lendecke wrote:

> It uses a pthread based implementation in by default via
> lib/asys and lib/pthreadpool.
 > [...]
> asys.h has more functions mentioned than actually
> implemented. asys_open is not implemented yet, this will
> require a fork model. I nevertheless want to show the easy
> piece for review early.

I like the idea behind this (and I think it is the correct thing to do
from an engineering perspective): instead of cluttering AIO code all
over the code, have a single place in the code that deals with aio and
the various approaches to it on the different platforms.

However, I am not sure about the impact it will have on the
implementation and stackability of VFS modules, especially ones that are 
not shipped as part of the Samba source.
e.g. Antivirus modules might want to perform their own open() of a file
before letting smbd do the actual open(). Thus this would have to be
done asynchronously as well to not introduce synchronous IO again and so
libasys must sit at the very low end of the chain.

Maybe this will require some guidance for external VFS module authors
how to properly implement secondary IO.


More information about the samba-technical mailing list