[launchd-changes] [23682] branches/PR-5898404/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Wed Aug 20 01:31:45 PDT 2008
Revision: 23682
http://trac.macosforge.org/projects/launchd/changeset/23682
Author: dsorresso at apple.com
Date: 2008-08-20 01:31:44 -0700 (Wed, 20 Aug 2008)
Log Message:
-----------
Added vproc_transaction_optin() SPI. buildit isn't working from home, so I don't know if these changes compile/work yet.
Modified Paths:
--------------
branches/PR-5898404/launchd/src/launchd_core_logic.c
branches/PR-5898404/launchd/src/libvproc.c
branches/PR-5898404/launchd/src/libvproc_private.h
branches/PR-5898404/launchd/src/protocol_job.defs
branches/PR-5898404/launchd/src/protocol_job_reply.defs
Modified: branches/PR-5898404/launchd/src/launchd_core_logic.c
===================================================================
--- branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-20 02:19:07 UTC (rev 23681)
+++ branches/PR-5898404/launchd/src/launchd_core_logic.c 2008-08-20 08:31:44 UTC (rev 23682)
@@ -6424,6 +6424,20 @@
}
kern_return_t
+job_mig_transaction_register(job_t job, uint64_t flags __attribute__((unused)))
+{
+ job_log(job, LOG_DEBUG, "Request to be opted into transaction model.");
+
+ if( !job->kill_via_shmem ) {
+ job->kill_via_shmem = 1;
+ } else {
+ job_log(job, LOG_NOTICE, "Attempt to re-register for transaction model.");
+ }
+
+ return KERN_SUCCESS;
+}
+
+kern_return_t
job_mig_look_up2(job_t j, mach_port_t srp, name_t servicename, mach_port_t *serviceportp, pid_t target_pid, uint64_t flags)
{
struct machservice *ms;
Modified: branches/PR-5898404/launchd/src/libvproc.c
===================================================================
--- branches/PR-5898404/launchd/src/libvproc.c 2008-08-20 02:19:07 UTC (rev 23681)
+++ branches/PR-5898404/launchd/src/libvproc.c 2008-08-20 08:31:44 UTC (rev 23682)
@@ -181,9 +181,16 @@
}
}
-void _vproc_transaction_optin(void)
+vproc_err_t _vproc_transaction_optin(void)
{
+ if (unlikely(vproc_shmem == NULL)) {
+ int po_r = pthread_once(&shmem_inited, vproc_shmem_init);
+ if (po_r != 0 || vproc_shmem == NULL) {
+ return;
+ }
+ }
+ return vproc_mig_transaction_register(bootstrap_port, 0));
}
vproc_standby_t
Modified: branches/PR-5898404/launchd/src/libvproc_private.h
===================================================================
--- branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-20 02:19:07 UTC (rev 23681)
+++ branches/PR-5898404/launchd/src/libvproc_private.h 2008-08-20 08:31:44 UTC (rev 23682)
@@ -87,7 +87,7 @@
void _vproc_transaction_try_exit(int status);
void _vproc_transaction_begin(void);
void _vproc_transaction_end(void);
-void _vproc_transaction_optin(void);
+vproc_err_t _vproc_transaction_optin(void);
size_t _vproc_transaction_count(void);
Modified: branches/PR-5898404/launchd/src/protocol_job.defs
===================================================================
--- branches/PR-5898404/launchd/src/protocol_job.defs 2008-08-20 02:19:07 UTC (rev 23681)
+++ branches/PR-5898404/launchd/src/protocol_job.defs 2008-08-20 08:31:44 UTC (rev 23682)
@@ -62,6 +62,10 @@
__service_port : mach_port_t;
__flags : uint64_t);
+routine transaction_optin(
+ __bs_port : job_t;
+ __flags : uint64_t);
+
routine look_up2(
__bs_port : job_t;
sreplyport __rport : mach_port_make_send_once_t;
Modified: branches/PR-5898404/launchd/src/protocol_job_reply.defs
===================================================================
--- branches/PR-5898404/launchd/src/protocol_job_reply.defs 2008-08-20 02:19:07 UTC (rev 23681)
+++ branches/PR-5898404/launchd/src/protocol_job_reply.defs 2008-08-20 08:31:44 UTC (rev 23682)
@@ -35,6 +35,8 @@
skip; /* register */
+skip; /* transaction_optin */
+
skip; /* look_up */
simpleroutine job_mig_send_signal_reply(
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080820/9dedc770/attachment.html
More information about the launchd-changes
mailing list