Try to start _writer on-demand on macOS (#1739).
[dcpomatic.git] / src / tools / dcpomatic_disk_writer.cc
index 66f34794347e3fd6885e2ae012cca2278b76944c..d5599f25b5af2d15dd65c15fcfe47b9e03d894fa 100644 (file)
@@ -48,6 +48,7 @@ extern "C" {
 extern "C" {
 #include <lwext4/file_dev.h>
 }
+#include <xpc/xpc.h>
 #endif
 
 #ifdef DCPOMATIC_LINUX
@@ -520,6 +521,13 @@ main ()
        LOG_DISK_NC("dcpomatic_disk_writer started");
 #endif
 
+#ifdef DCPOMATIC_OSX
+       /* I *think* this confumes the notifyd event that we used to start the process, so we only
+        * get started once per notification.
+        */
+        xpc_set_event_stream_handler("com.apple.notifyd.matching", DISPATCH_TARGET_QUEUE_DEFAULT, ^(xpc_object_t event) {});
+#endif
+
        try {
                nanomsg = new Nanomsg (false);
        } catch (runtime_error& e) {