[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