[launchd-changes] [23469] trunk/launchd/src

source_changes at macosforge.org source_changes at macosforge.org
Wed Dec 19 09:40:59 PST 2007


Revision: 23469
          http://trac.macosforge.org/projects/launchd/changeset/23469
Author:   zarzycki at apple.com
Date:     2007-12-19 09:40:56 -0800 (Wed, 19 Dec 2007)

Log Message:
-----------
<rdar://problem/5582235> printf output not appearing in console or appearing after app quits

Modified Paths:
--------------
    trunk/launchd/src/launchd_core_logic.c
    trunk/launchd/src/launchd_runtime.c

Modified: trunk/launchd/src/launchd_core_logic.c
===================================================================
--- trunk/launchd/src/launchd_core_logic.c	2007-12-19 17:33:08 UTC (rev 23468)
+++ trunk/launchd/src/launchd_core_logic.c	2007-12-19 17:40:56 UTC (rev 23469)
@@ -2084,8 +2084,12 @@
 	}
 
 	if (j->log_redirect_fd && !j->legacy_LS_job) {
-		job_assumes(j, runtime_close(j->log_redirect_fd) != -1);
-		j->log_redirect_fd = 0;
+		job_log_stdouterr(j); /* one last chance */
+
+		if (j->log_redirect_fd) {
+			job_assumes(j, runtime_close(j->log_redirect_fd) != -1);
+			j->log_redirect_fd = 0;
+		}
 	}
 
 	if (j->forkfd) {

Modified: trunk/launchd/src/launchd_runtime.c
===================================================================
--- trunk/launchd/src/launchd_runtime.c	2007-12-19 17:33:08 UTC (rev 23468)
+++ trunk/launchd/src/launchd_runtime.c	2007-12-19 17:40:56 UTC (rev 23469)
@@ -1183,13 +1183,13 @@
 	}
 
 	if (!(LOG_MASK(attr->priority) & internal_mask_pri)) {
-		goto out;
+		return;
 	}
 
 	if (getpid() != 1 || !shutdown_in_progress) {
 		vsnprintf(newmsg, sizeof(newmsg), message, args);
 		logmsg_add(attr, saved_errno, newmsg);
-		goto out;
+		return;
 	}
 
 	if (shutdown_start.tv_sec == 0) {
@@ -1211,11 +1211,11 @@
 	pthread_mutex_unlock(&ourlock);
 
 	if (ourlogfile == NULL) {
-		goto out;
+		return;
 	}
 
 	if (message == NULL) {
-		goto out;
+		return;
 	}
 
 	timersub(&tvnow, &shutdown_start, &tvd_total);
@@ -1248,9 +1248,6 @@
 	strcpy(newmsg + j, "\n");
 
 	vfprintf(ourlogfile, newmsg, args);
-
-out:
-	runtime_log_uncork_pending_drain();
 }
 
 bool
@@ -1375,6 +1372,7 @@
 		launchd_assumes(STAILQ_EMPTY(&logmsg_queue));
 		return;
 	} else if (getpid() == 1) {
+		runtime_log_uncork_pending_drain();
 		return;
 	}
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20071219/4a67597e/attachment.html


More information about the launchd-changes mailing list