dovecot-2.0: master: Add IO listeners to anvil after forking. Fi...
dovecot at dovecot.org
dovecot at dovecot.org
Thu Oct 15 22:17:19 EEST 2009
details: http://hg.dovecot.org/dovecot-2.0/rev/5147503f4123
changeset: 10069:5147503f4123
user: Timo Sirainen <tss at iki.fi>
date: Thu Oct 15 15:17:12 2009 -0400
description:
master: Add IO listeners to anvil after forking. Fixes kqueue.
diffstat:
3 files changed, 10 insertions(+), 1 deletion(-)
src/master/service-anvil.c | 8 +++++++-
src/master/service-anvil.h | 1 +
src/master/service-monitor.c | 2 ++
diffs (49 lines):
diff -r 14eeed133d57 -r 5147503f4123 src/master/service-anvil.c
--- a/src/master/service-anvil.c Thu Oct 15 13:51:37 2009 -0400
+++ b/src/master/service-anvil.c Thu Oct 15 15:17:12 2009 -0400
@@ -113,8 +113,14 @@ int service_list_init_anvil(struct servi
service_list->anvil_kills =
service_process_notify_init(service_list->nonblocking_anvil_fd[1],
service_process_write_anvil_kill);
+ return 0;
+}
+
+void services_anvil_init(struct service_list *service_list)
+{
+ /* this can't be in _init_anvil() because we can't do io_add()s
+ before forking with kqueue. */
service_list_anvil_discard_input(service_list);
- return 0;
}
void service_list_deinit_anvil(struct service_list *service_list)
diff -r 14eeed133d57 -r 5147503f4123 src/master/service-anvil.h
--- a/src/master/service-anvil.h Thu Oct 15 13:51:37 2009 -0400
+++ b/src/master/service-anvil.h Thu Oct 15 15:17:12 2009 -0400
@@ -4,6 +4,7 @@ int service_list_init_anvil(struct servi
int service_list_init_anvil(struct service_list *service_list,
const char **error_r);
void service_list_deinit_anvil(struct service_list *service_list);
+void services_anvil_init(struct service_list *service_list);
void service_anvil_process_created(struct service *service);
void service_anvil_process_destroyed(struct service *service);
diff -r 14eeed133d57 -r 5147503f4123 src/master/service-monitor.c
--- a/src/master/service-monitor.c Thu Oct 15 13:51:37 2009 -0400
+++ b/src/master/service-monitor.c Thu Oct 15 15:17:12 2009 -0400
@@ -9,6 +9,7 @@
#include "service-auth-source.h"
#include "service-process.h"
#include "service-process-notify.h"
+#include "service-anvil.h"
#include "service-log.h"
#include "service-monitor.h"
@@ -267,6 +268,7 @@ void services_monitor_start(struct servi
struct service *const *services;
unsigned int i, count;
+ services_anvil_init(service_list);
services_log_init(service_list);
services = array_get(&service_list->services, &count);
More information about the dovecot-cvs
mailing list