Revision
23114
Author
zarzycki@apple.com
Date
2007-02-27 12:08:06 -0800 (Tue, 27 Feb 2007)

Log Message

<rdar://problem/5026323> Only run SystemStarter when StartupItems exist

Modified Paths

Diff

Modified: trunk/Makefile (23113 => 23114)


--- trunk/Makefile	2007-02-27 19:52:04 UTC (rev 23113)
+++ trunk/Makefile	2007-02-27 20:08:06 UTC (rev 23114)
@@ -12,6 +12,8 @@
 else
 	mkdir -p $(DSTROOT)/Library/StartupItems
 	chmod 755 $(DSTROOT)/Library/StartupItems
+	mkdir -p $(DSTROOT)/System/Library/StartupItems
+	chmod 755 $(DSTROOT)/System/Library/StartupItems
 	rm -rf $(DSTROOT)/usr/local/lib/system
 	cp $(OBJROOT)/src/launchd $(SYMROOT)
 	cp $(OBJROOT)/src/launchctl $(SYMROOT)

Modified: trunk/launchd/src/SystemStarter.c (23113 => 23114)


--- trunk/launchd/src/SystemStarter.c	2007-02-27 19:52:04 UTC (rev 23113)
+++ trunk/launchd/src/SystemStarter.c	2007-02-27 20:08:06 UTC (rev 23114)
@@ -53,13 +53,14 @@
 {
 	struct kevent	kev;
 	Action          anAction = kActionStart;
-	int             ch, kq;
+	int             ch, r, kq = kqueue();
 
-	assert((kq = kqueue()) != -1);
+	assert(kq  != -1);
 
 	EV_SET(&kev, SIGTERM, EVFILT_SIGNAL, EV_ADD, 0, 0, 0);
-	assert(kevent(kq, &kev, 1, NULL, 0, NULL) != -1);
-	assert(signal(SIGTERM, SIG_IGN) != SIG_ERR);
+	r = kevent(kq, &kev, 1, NULL, 0, NULL);
+	assert(r != -1);
+	signal(SIGTERM, SIG_IGN);
 
 	while ((ch = getopt(argc, argv, "gvxirdDqn?")) != -1) {
 		switch (ch) {
@@ -158,7 +159,8 @@
 			NULL, NULL,
 			kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions);
 
-	assert(kevent(kq, NULL, 0, &kev, 1, NULL) != -1);
+	r = kevent(kq, NULL, 0, &kev, 1, NULL);
+	assert(r != -1);
 	assert(kev.filter == EVFILT_SIGNAL && kev.ident == SIGTERM);
 
 	system_starter(kActionStop, NULL);