chiark / gitweb /
SIGTERM and wait for subprocesses on server shutdown.
[disorder] / server / state.c
index bd74b149f2fb977c22461243ddf201af38cfc3fe..47bb75c57624d68ec2b69c6790bd27b374c87682 100644 (file)
@@ -50,6 +50,22 @@ void quit(ev_source *ev) {
   quitting(ev);
   trackdb_close();
   trackdb_deinit();
   quitting(ev);
   trackdb_close();
   trackdb_deinit();
+  /* Shutdown subprocesses.
+   *
+   * Subprocesses that use ev_child:
+   * - the speaker
+   * - the current rescan
+   * - any decoders
+   * - ...and players
+   * - the track picker
+   * - mail sender
+   * - the deadlock manager
+   *
+   * Subprocesses that don't:
+   * - any normalizers
+   * These are not shut down currently.
+   */
+  ev_child_killall(ev);
   info("exiting");
   exit(0);
 }
   info("exiting");
   exit(0);
 }