Author: tridge Date: 2007-01-09 00:00:30 +0000 (Tue, 09 Jan 2007) New Revision: 20621
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20621 Log: - enable the aio events backend on systems that support it - allow the events backend to be chosen in smb.conf Modified: branches/SAMBA_4_0/source/lib/events/config.mk branches/SAMBA_4_0/source/lib/events/events.c branches/SAMBA_4_0/source/lib/events/events_aio.c Changeset: Modified: branches/SAMBA_4_0/source/lib/events/config.mk =================================================================== --- branches/SAMBA_4_0/source/lib/events/config.mk 2007-01-08 23:36:55 UTC (rev 20620) +++ branches/SAMBA_4_0/source/lib/events/config.mk 2007-01-09 00:00:30 UTC (rev 20621) @@ -1,4 +1,12 @@ ############################## +[MODULE::EVENTS_AIO] +OBJ_FILES = events_aio.o +PRIVATE_DEPENDENCIES = LIBAIO_LINUX +SUBSYSTEM = LIBEVENTS +INIT_FUNCTION = events_aio_init +############################## + +############################## [MODULE::EVENTS_EPOLL] OBJ_FILES = events_epoll.o SUBSYSTEM = LIBEVENTS @@ -24,6 +32,6 @@ # Start SUBSYSTEM LIBEVENTS [SUBSYSTEM::LIBEVENTS] OBJ_FILES = events.o events_timed.o -PUBLIC_DEPENDENCIES = LIBTALLOC EVENTS_STANDARD EVENTS_EPOLL +PUBLIC_DEPENDENCIES = LIBTALLOC EVENTS_STANDARD EVENTS_AIO EVENTS_EPOLL # End SUBSYSTEM LIBEVENTS ############################## Modified: branches/SAMBA_4_0/source/lib/events/events.c =================================================================== --- branches/SAMBA_4_0/source/lib/events/events.c 2007-01-08 23:36:55 UTC (rev 20620) +++ branches/SAMBA_4_0/source/lib/events/events.c 2007-01-09 00:00:30 UTC (rev 20621) @@ -157,6 +157,10 @@ event_backend_init(); + if (name == NULL) { + name = "standard"; + } + for (e=event_backends;e;e=e->next) { if (strcmp(name, e->name) == 0) { return event_context_init_ops(mem_ctx, e->ops); @@ -173,7 +177,7 @@ */ struct event_context *event_context_init(TALLOC_CTX *mem_ctx) { - return event_context_init_byname(mem_ctx, "standard"); + return event_context_init_byname(mem_ctx, NULL); } /* @@ -246,6 +250,7 @@ return ev->ops->loop_wait(ev); } +#if _SAMBA_BUILD_ /* find an event context that is a parent of the given memory context, or create a new event context as a child of the given context if @@ -258,8 +263,10 @@ struct event_context *event_context_find(TALLOC_CTX *mem_ctx) { struct event_context *ev = talloc_find_parent_bytype(mem_ctx, struct event_context); - if (ev == NULL) { - ev = event_context_init(mem_ctx); + if (ev == NULL) { + ev = event_context_init_byname(mem_ctx, + lp_parm_string(-1, "event", "backend")); } return ev; } +#endif Modified: branches/SAMBA_4_0/source/lib/events/events_aio.c =================================================================== --- branches/SAMBA_4_0/source/lib/events/events_aio.c 2007-01-08 23:36:55 UTC (rev 20620) +++ branches/SAMBA_4_0/source/lib/events/events_aio.c 2007-01-09 00:00:30 UTC (rev 20621) @@ -268,9 +268,6 @@ uint16_t flags = 0; int j; -// DEBUG(0,("EVENT finished=%p fde=%p ep=%p\n", finished, fde, ep)); - //printf("GOT %d aio epoll events\n", event->res); - aio_ev->is_epoll_set = 0; for (j=0; j<event->res; j++, ep++) {