summaryrefslogtreecommitdiff
path: root/source3/lib/server_prefork.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib/server_prefork.c')
-rw-r--r--source3/lib/server_prefork.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/source3/lib/server_prefork.c b/source3/lib/server_prefork.c
index 82645504f8..bcb5e0f19e 100644
--- a/source3/lib/server_prefork.c
+++ b/source3/lib/server_prefork.c
@@ -19,6 +19,8 @@
*/
#include "includes.h"
+#include "serverid.h"
+#include "messages.h"
#include "system/time.h"
#include "system/shmem.h"
#include "system/filesys.h"
@@ -423,6 +425,23 @@ void prefork_send_signal_to_all(struct prefork_pool *pfp, int signal_num)
}
}
+void prefork_warn_active_children(struct messaging_context *msg_ctx,
+ struct prefork_pool *pfp)
+{
+ const DATA_BLOB ping = data_blob_null;
+ int i;
+
+ for (i = 0; i < pfp->pool_size; i++) {
+ if (pfp->pool[i].status == PF_WORKER_NONE) {
+ continue;
+ }
+
+ messaging_send(msg_ctx,
+ pid_to_procid(pfp->pool[i].pid),
+ MSG_PREFORK_PARENT_EVENT, &ping);
+ }
+}
+
static void prefork_sigchld_handler(struct tevent_context *ev_ctx,
struct tevent_signal *se,
int signum, int count,