aboutsummaryrefslogtreecommitdiffstats
path: root/scd/scdaemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'scd/scdaemon.c')
-rw-r--r--scd/scdaemon.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/scd/scdaemon.c b/scd/scdaemon.c
index 7972abd1b..e4b0ef894 100644
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -1150,6 +1150,8 @@ start_connection_thread (void *arg)
return NULL;
}
+ active_connections++;
+
scd_init_default_ctrl (ctrl);
if (opt.verbose)
log_info (_("handler for fd %d started\n"),
@@ -1169,6 +1171,10 @@ start_connection_thread (void *arg)
scd_deinit_default_ctrl (ctrl);
xfree (ctrl);
+
+ if (--active_connections == 0)
+ scd_kick_the_loop ();
+
return NULL;
}
@@ -1349,3 +1355,10 @@ handle_connections (int listen_fd)
log_info (_("%s %s stopped\n"), strusage(11), strusage(13));
npth_attr_destroy (&tattr);
}
+
+/* Return the number of active connections. */
+int
+get_active_connection_count (void)
+{
+ return active_connections;
+}