Age | Commit message (Collapse) | Author | Files | Lines |
|
There are still a few tidyups of old FSF addresses to come (in both s3
and s4). More commits soon.
(This used to be commit fcf38a38ac691abd0fa51b89dc951a08e89fdafa)
|
|
(This used to be commit 76b981fcefb0dff24ac7d543da70fbb487ed7072)
|
|
thanks to Volker for spotting this!
(This used to be commit d28fc5f87fd4d9a9843d1295fe2a181922a476fc)
|
|
(This used to be commit 146303d91b4c64c87c356c3ed44ccb5774297a71)
|
|
the build farm
(This used to be commit 603d8b6f1702d10234b81ccde0649d8be63ae616)
|
|
the epoll context which would then appear in the children. To fix this
we need to check for pid changes in more places. Luckily on platforms
where we have epoll(), getpid() is very very cheap.
(This used to be commit 4f84e6d569f9c9d7dd902f4550735f3ce2d3b424)
|
|
(This used to be commit a69f28599845d3ea3868a574c6b0ba8db8486ef5)
|
|
fork(). See
http://junkcode.samba.org/ftp/unpacked/junkcode/epoll_fork.c for why
this is needed
(This used to be commit 6d06132ea9c5a1c7d098ba13f4146dc60e811e44)
|
|
includes a new EVENT_FD_AUTOCLOSE flag that prevents race conditions
where code using fd events might close a fd before releasing the
struct fd_event. That causes headaches for epoll.
(This used to be commit f1ad216de13b154a1f8747a44b0970dcc47a784a)
|
|
- if someone adds a timed_event with a zero timeval
we now avoid serval gettimeofday() calls and the
event handler doesn't get the current time when it's
called, instead we also pass a zero timeval
- this also makes sure multiple timed events with a zero timeval
are processed in the order there're added.
the little benchmark shows that processing 2000000 directly timed events
is now much faster, while avoiding syscalls at all!
> time ./evtest (with the old code)
real 0m6.388s
user 0m1.740s
sys 0m4.632s
> time ./evtest (with the new code)
real 0m1.498s
user 0m1.496s
sys 0m0.004s
metze@SERNOX:~/devel/samba/4.0/samba4-ci/source> cat evtest.c
#include <stdio.h>
#include <stdint.h>
#include <sys/time.h>
#include <talloc.h>
#include <events.h>
static void dummy_fde_handler(struct event_context *ev_ctx, struct fd_event *fde,
uint16_t flags, void *private_data)
{
}
static void timeout_handler(struct event_context *ev, struct timed_event *te,
struct timeval tval, void *private_data)
{
uint32_t *countp = (uint32_t *)private_data;
(*countp)++;
if (*countp > 2000000) exit(0);
event_add_timed(ev, ev, tval, timeout_handler, countp);
}
int main(void)
{
struct event_context *ev;
struct timeval tval = { 0, 0 };
uint32_t count = 0;
ev = event_context_init(NULL);
event_add_fd(ev, ev, 0, 0, dummy_fde_handler, NULL);
event_add_timed(ev, ev, tval, timeout_handler, &count);
return event_loop_wait(ev);
}
(This used to be commit 4db64b4ce2320b88d648078cbf86385f6fb44f1f)
|
|
(This used to be commit b0c8c1cd21e3f91431504d70a4bc0d3c6dee6071)
|
|
(This used to be commit 216aa06fe634f98dce3f157e67303e90ddb70e2d)
|
|
If this happens:
- two sockets are readable, and select/epoll/aio returns both of
them
- read event on socket1 is called
- inside that read event an event_loop_once is called, this returns that
socket2 is readable
- read event on socket2 is called
- event_loop_once returns
- top level event handler then calls read event on socket2 (as it
still has that listed as readable)
- read handler for socket2 returns zero byte read, which is
interpreted as end of file
- socket is incorrectly closed
this happened with ctdb, but it could happen anywhere (just
rarely). The fix is trivial - ensure we break out of the event loop
when we have been called recursively.
(This used to be commit e042002bb5ee8974220e1ade56b64389571f75a6)
|
|
Jeremy asked for this to allow Samba3 to use the Samba4 events library
see torture/local/event.c for an example
(This used to be commit 7e105482ff9a3da6b4708ff99a64f1881614fc5f)
|
|
- 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)
|
|
* Move dlinklist.h, smb.h to subsystem-specific directories
* Clean up ads.h and move what is left of it to dsdb/
(only place where it's used)
(This used to be commit f7afa1cb77f3cfa7020b57de12e6003db7cfcc42)
|
|
(This used to be commit 61c6100617589ac6df4f527877241464cacbf8b3)
|
|
epoll support
(This used to be commit 71eb159f9cc00e8de23a8700cea0e7a3be8c64d4)
|
|
metze
(This used to be commit 75a98047d6829cadf4b9082bec2733055dad3465)
|
|
you don't ask for.
with this patch the epoll mode behaves like the select mode
metze
(This used to be commit f26c28a3ae7951657cc304659f3d19c16f462dd8)
|
|
let our code make it explicit, to make it clear
metze
(This used to be commit cf733e2684ab0d43d83b1ab5c9d178d895f768a1)
|
|
for the case where, epoll isn't available at compile time
- only pass the private std_event_context, to the local function,
to get rid of the talloc_get_type() calls
- use the private pointer to std_event_context_init() to decide if we want to
disable epoll at runtime
metze
(This used to be commit de322ea8b761df5434e60879b7eae3796ea68007)
|
|
the events backend can store private flags
- add function to access the gtk event loop ops struct
metze
(This used to be commit a5cc0758a393f36a770cdd57e317214d03934c13)
|
|
metze
(This used to be commit 1dd5bb60a5047b94034eb084473bb8f4a9926e7c)
|
|
around
prevents the memory from being freed.
Thanks,
Volker
(This used to be commit df8eeb01f498568207a4a8d5d12348c473f41799)
|
|
proper fix
for it pending.
Also fix a bug with timed events: Don't call the same event recursively in the
handler's inner semi-async event loop.
Volker
(This used to be commit e38e50127a3414461578421e676a9c58c106c272)
|
|
the events code replaces a destructor to one that returns allways -1
while it's calling the event handler
- we don't need the composite and winsrepl specific fixes any more
- this also fixes the problem with smbcli, dcerpc, cldap, ldap and nbt
request timeouts
metze
(This used to be commit 495996cfc49a1c6eefde6ff04fc75e0739be3aab)
|
|
strcmp.
Volker
(This used to be commit 6f5bd7602155413029de32295d2639c4073ad4d8)
|
|
timeval_diff is
not strictly a subtraction function, there can't be negative timevals.
Volker
(This used to be commit 525d75dd24f6a8810f1ed2043d170c70b060f1f0)
|
|
some of our torture code does its own timeout processing, which means
there is no event timer in the event context. To fix this gererically
I have added a 30 second timout to all select/epoll calls so the
callers timeout loop is guaranteed to run eventually
(This used to be commit 01e5aa146439f2dbf6c4133a0b5d910383a6576b)
|
|
less scalable. It only needs to be recalculated when we the highest fd
is destroyed.
(This used to be commit 568b9175f329f594404c9091ee5946670c40697e)
|
|
when linking though.
(This used to be commit 2e1e8db6dc877eb32b51cfc3d9c8f463d14530ec)
|
|
using other implementations possible. This will be mostly usefull
for client apps which have there own event loop and want to
use our client libs
- add a example plugin for liboop (see http://liboop.org)
NOTE: this just compiles and is completly untested
and is commited only as example
metze
(This used to be commit b3d0a410efe856e3bcf127f00c31905f5a23cc04)
|
|
metze
(This used to be commit 67bf637e9a44202061fd71c92142f835ba76da89)
|
|
implementations possible
metze
(This used to be commit dd77ec754b811feb147458d76fa16833767dccea)
|