[launchd-changes] [23124] trunk/launchd/src
source_changes at macosforge.org
source_changes at macosforge.org
Sat Mar 3 15:09:50 PST 2007
Revision: 23124
http://trac.macosforge.org/projects/launchd/changeset/23124
Author: zarzycki at apple.com
Date: 2007-03-03 15:09:49 -0800 (Sat, 03 Mar 2007)
Log Message:
-----------
Transform jobmgr_fork() to runtime_fork(). Someday, I'll create runtime_spawn() that wraps and extends posix_spawn().
Modified Paths:
--------------
trunk/launchd/src/launchd_core_logic.c
trunk/launchd/src/launchd_runtime.c
trunk/launchd/src/launchd_runtime.h
Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c 2007-03-02 23:46:29 UTC (rev 23123)
+++ trunk/launchd/src/launchd_core_logic.c 2007-03-03 23:09:49 UTC (rev 23124)
@@ -221,7 +221,6 @@
static job_t job_mig_intran2(jobmgr_t jm, mach_port_t p);
static void job_export_all2(jobmgr_t jm, launch_data_t where);
static void jobmgr_callback(void *obj, struct kevent *kev);
-static pid_t jobmgr_fork(jobmgr_t jm);
static void jobmgr_setup_env_from_other_jobs(jobmgr_t jm);
static struct machservice *jobmgr_lookup_service(jobmgr_t jm, const char *name, bool check_parent, pid_t target_pid);
static void jobmgr_logv(jobmgr_t jm, int pri, int err, const char *msg, va_list ap) __attribute__((format(printf, 4, 0)));
@@ -1986,7 +1985,7 @@
time(&j->start_time);
- switch (c = jobmgr_fork(j->mgr)) {
+ switch (c = runtime_fork(j->mgr->jm_port)) {
case -1:
job_log_error(j, LOG_ERR, "fork() failed, will try again in one second");
job_assumes(j, close(execspair[0]) == 0);
@@ -3088,29 +3087,6 @@
return false;
}
-pid_t
-jobmgr_fork(jobmgr_t jm)
-{
- mach_port_t p = jm->jm_port;
- pid_t r = -1;
- int saved_errno;
-
- jobmgr_assumes(jm, launchd_mport_make_send(p) == KERN_SUCCESS);
- jobmgr_assumes(jm, launchd_set_bport(p) == KERN_SUCCESS);
- jobmgr_assumes(jm, launchd_mport_deallocate(p) == KERN_SUCCESS);
-
- r = fork();
-
- saved_errno = errno;
-
- if (r != 0) {
- jobmgr_assumes(jm, launchd_set_bport(MACH_PORT_NULL) == KERN_SUCCESS);
- }
-
- errno = saved_errno;
- return r;
-}
-
void
machservice_watch(job_t j, struct machservice *ms)
{
Modified: trunk/launchd/src/launchd_runtime.c
===================================================================
--- trunk/launchd/src/launchd_runtime.c 2007-03-02 23:46:29 UTC (rev 23123)
+++ trunk/launchd/src/launchd_runtime.c 2007-03-03 23:09:49 UTC (rev 23124)
@@ -553,6 +553,30 @@
return errno;
}
+pid_t
+runtime_fork(mach_port_t bsport)
+{
+ pid_t r = -1;
+ int saved_errno;
+
+ launchd_assumes(launchd_mport_make_send(bsport) == KERN_SUCCESS);
+ launchd_assumes(launchd_set_bport(bsport) == KERN_SUCCESS);
+ launchd_assumes(launchd_mport_deallocate(bsport) == KERN_SUCCESS);
+
+ r = fork();
+
+ saved_errno = errno;
+
+ if (r != 0) {
+ launchd_assumes(launchd_set_bport(MACH_PORT_NULL) == KERN_SUCCESS);
+ }
+
+ errno = saved_errno;
+
+ return r;
+}
+
+
void
runtime_set_timeout(timeout_callback to_cb, mach_msg_timeout_t to)
{
Modified: trunk/launchd/src/launchd_runtime.h
===================================================================
--- trunk/launchd/src/launchd_runtime.h 2007-03-02 23:46:29 UTC (rev 23123)
+++ trunk/launchd/src/launchd_runtime.h 2007-03-03 23:09:49 UTC (rev 23124)
@@ -71,6 +71,8 @@
int kevent_mod(uintptr_t ident, short filter, u_short flags, u_int fflags, intptr_t data, void *udata);
+pid_t runtime_fork(mach_port_t bsport);
+
void runtime_openlog(const char *ident, int logopt, int facility);
void runtime_closelog(void);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070303/5630b0c2/attachment.html
More information about the launchd-changes
mailing list