#include "cupsd.h"
#include <sys/resource.h>
#ifdef __APPLE__
+# include <os/object.h>
+typedef struct os_transaction_s *os_transaction_t;
+extern os_transaction_t os_transaction_create(const char *description);
# include <xpc/xpc.h>
# include <pthread/qos.h>
#endif /* __APPLE__ */
static int stop_scheduler = 0;
/* Should the scheduler stop? */
static time_t local_timeout = 0;
- /* Next local printer timeout */
+ /* Next local printer timeout */
+#ifdef __APPLE__
+static os_transaction_t launchd_transaction = NULL;
+ /* Transaction for launchd */
+#endif /* __APPLE__ */
/*
free(ld_sockets);
# ifdef __APPLE__
- xpc_transaction_begin();
+ launchd_transaction = os_transaction_create("org.cups.cupsd.active-printing");
# endif /* __APPLE__ */
}
}
# ifdef __APPLE__
- if (OnDemand && shutdown)
- xpc_transaction_end();
+ if (OnDemand && shutdown && launchd_transaction)
+ {
+ os_release(launchd_transaction);
+ launchd_transaction = NULL;
+ }
# endif /* __APPLE__ */
}