[launchd-changes] [23054] trunk/launchd/src/launchd_core_logic.c
source_changes at macosforge.org
source_changes at macosforge.org
Fri Feb 9 19:25:35 PST 2007
Revision: 23054
http://trac.macosforge.org/projects/launchd/changeset/23054
Author: zarzycki at apple.com
Date: 2007-02-09 19:25:34 -0800 (Fri, 09 Feb 2007)
Log Message:
-----------
Misc
Modified Paths:
--------------
trunk/launchd/src/launchd_core_logic.c
Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c 2007-02-09 22:51:16 UTC (rev 23053)
+++ trunk/launchd/src/launchd_core_logic.c 2007-02-10 03:25:34 UTC (rev 23054)
@@ -201,7 +201,6 @@
char *jm_stdout;
char *jm_stderr;
unsigned int global_on_demand_cnt;
- unsigned int would_have_sigkilled;
unsigned int transfer_bstrap:1, sent_stop_to_hopeful_jobs:1, shutting_down:1;
char name[0];
};
@@ -1771,14 +1770,7 @@
void
job_kill(job_t j)
{
- if (debug_shutdown_hangs) {
- j->mgr->would_have_sigkilled++;
- if (j->mgr->would_have_sigkilled >= total_children) {
- job_assumes(j, host_reboot(mach_host_self(), HOST_REBOOT_DEBUGGER) == 0);
- }
- } else {
- job_assumes(j, kill(j->p, SIGKILL) != -1);
- }
+ job_assumes(j, kill(j->p, SIGKILL) != -1);
}
void
@@ -1788,8 +1780,13 @@
switch (kev->filter) {
case EVFILT_PROC:
- job_reap(j);
- job_dispatch(j, false);
+ if (kev->fflags & NOTE_EXEC) {
+ job_log(j, LOG_DEBUG, "Called execve()");
+ }
+ if (kev->fflags & NOTE_EXIT) {
+ job_reap(j);
+ job_dispatch(j, false);
+ }
break;
case EVFILT_TIMER:
if ((uintptr_t)j == kev->ident || (uintptr_t)&j->start_interval == kev->ident) {
@@ -1925,7 +1922,7 @@
job_assumes(j, close(spair[1]) == 0);
ipc_open(_fd(spair[0]), j);
}
- if (kevent_mod(c, EVFILT_PROC, EV_ADD, NOTE_EXIT, 0, &j->kqjob_callback) == -1) {
+ if (kevent_mod(c, EVFILT_PROC, EV_ADD, NOTE_EXEC|NOTE_EXIT, 0, &j->kqjob_callback) == -1) {
job_log_error(j, LOG_ERR, "kevent()");
job_reap(j);
} else {
@@ -3501,13 +3498,8 @@
void
machservice_delete(struct machservice *ms)
{
- if (ms->recv) {
- if (ms->isActive) {
- /* FIXME we should cancel the notification */
- job_log(ms->job, LOG_DEBUG, "Mach service deleted while we didn't own the receive right: %s", ms->name);
- } else {
- job_assumes(ms->job, launchd_mport_close_recv(ms->port) == KERN_SUCCESS);
- }
+ if (ms->recv && job_assumes(ms->job, !ms->isActive)) {
+ job_assumes(ms->job, launchd_mport_close_recv(ms->port) == KERN_SUCCESS);
}
job_assumes(ms->job, launchd_mport_deallocate(ms->port) == KERN_SUCCESS);
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20070209/a8a6798b/attachment.html
More information about the launchd-changes
mailing list