summaryrefslogtreecommitdiff
path: root/source4/lib/events/events_aio.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r20788: - remove epoll configure checks from libreplaceStefan Metzmacher1-1/+1
- fix epoll configure checks for the epoll and aio events backends - we should only activate the epoll backend if sys/epoll.h and epoll_create() are found - we should only activate the aio backend if sys/epoll.h, epoll_create(), libaio.h and io_getevents() are found hopefully fix the build on 'bnhtest' in the build farm... metze (This used to be commit d46a5efb03ea1df50567cad00e1589870cdb31fe)
2007-10-10r20621: - enable the aio events backend on systems that support itAndrew Tridgell1-3/+0
- allow the events backend to be chosen in smb.conf (This used to be commit 4a8e07286f827a6f57b2c54d97d31172553ceb0d)
2007-10-10r20539: - split the common timer related events code into events_timed.cAndrew Tridgell1-138/+121
- make it easier to plug in a new events backend - add simpler 'select' and 'epoll' backends This is part of the effort to add good AIO support. The events_aio.c backend is done, but sometimes dies with a SEGV, which is why it isn't enabled yet. (This used to be commit 934f18283dbc7958944931a93a854526bcd54884)
2007-10-10r20104: this is a alternative events backend, which uses a hybrid of aio andAndrew Tridgell1-0/+518
epoll. It is not linked in anywhere yet - I'm committing it in case anyone else wants to have a look at it. The concept is quite strange really, but it seems to be the only way that Linux 2.6.x can currently use a unified event model allowing for AIO events and socket events to be waited for by a single unified event wait function. You setup a epoll system, then setup a weird aio event that points at the epoll system, then use io_getevents() to actually do the waiting. I'm hoping that kevents or a proper integration of epoll will allow us to avoid ths rather hackish scheme, but meanwhile this is the only path to proper AIO in Samba on Linux (without a horrible signals mess) (NOTE: this code requires some kernel patches to work at the moment) (This used to be commit 195051fdee341e8d8cb76e5c91dcc0f6c246a870)