1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-25 06:04:04 +03:00

tevent: added tevent_re_initialise()

This allows us to re-initialise a tevent context without destroying
the pointer. That means that if someone keeps a long term ptr to the
event context across a fork it will still work.

This also brings the memory handling in single and standard process
models much closer together, which means less bugs that we don't find
with make test.
This commit is contained in:
Andrew Tridgell 2010-03-26 21:13:27 +11:00
parent 525a4fb2c4
commit 5609c50433
2 changed files with 17 additions and 0 deletions

View File

@ -616,3 +616,18 @@ int _tevent_loop_wait(struct tevent_context *ev, const char *location)
{
return ev->ops->loop_wait(ev, location);
}
/*
re-initialise a tevent context. This leaves you with the same
event context, but all events are wiped and the structure is
re-initialised. This is most useful after a fork()
zero is returned on success, non-zero on failure
*/
int tevent_re_initialise(struct tevent_context *ev)
{
tevent_common_context_destructor(ev);
return ev->ops->context_init(ev);
}

View File

@ -366,6 +366,8 @@ int _tevent_loop_until(struct tevent_context *ev,
_tevent_loop_until(ev, finished, private_data, __location__)
#endif
int tevent_re_initialise(struct tevent_context *ev);
/**
* The following structure and registration functions are exclusively