From 31773b71e89f79cb5afda834ce15538a8818067d Mon Sep 17 00:00:00 2001
From: Denis Vlasenko <vda.linux@googlemail.com>
Date: Thu, 26 Feb 2009 12:38:01 +0000
Subject: runsv: another tiny optimization

function                                             old     new   delta
startservice                                         297     288      -9
ctrl                                                 435     426      -9
---
 runit/runsv.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/runit/runsv.c b/runit/runsv.c
index 4155b8f43..6d34dc133 100644
--- a/runit/runsv.c
+++ b/runit/runsv.c
@@ -304,15 +304,14 @@ static void stopservice(struct svdir *s)
 static void startservice(struct svdir *s)
 {
 	int p;
-	char *run[2];
+	const char *run;
 
 	if (s->state == S_FINISH)
-		run[0] = (char*)"./finish";
+		run = "./finish";
 	else {
-		run[0] = (char*)"./run";
+		run = "./run";
 		custom(s, 'u');
 	}
-	run[1] = NULL;
 
 	if (s->pid != 0)
 		stopservice(s); /* should never happen */
@@ -340,8 +339,8 @@ static void startservice(struct svdir *s)
 			, SIG_DFL);*/
 		sig_unblock(SIGCHLD);
 		sig_unblock(SIGTERM);
-		execvp(*run, run);
-		fatal2_cannot(s->islog ? "start log/" : "start ", *run);
+		execl(run, run, (char *) NULL);
+		fatal2_cannot(s->islog ? "start log/" : "start ", run);
 	}
 	/* parent */
 	if (s->state != S_FINISH) {
@@ -395,8 +394,7 @@ static int ctrl(struct svdir *s, char c)
 	case 'c': /* sig cont */
 		if (s->pid && !custom(s, c))
 			kill(s->pid, SIGCONT);
-		if (s->ctrl & C_PAUSE)
-			s->ctrl &= ~C_PAUSE;
+		s->ctrl &= ~C_PAUSE;
 		update_status(s);
 		break;
 	case 'o': /* once */
-- 
cgit v1.2.3