From 733f728b8fb4a5cc823c347c0f4bb6a0a2d4b748 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 30 Mar 2010 17:45:56 +0200 Subject: fork: call getpid() only once --- src/fork-detect.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/fork-detect.c b/src/fork-detect.c index d416eb3..20ee1ab 100644 --- a/src/fork-detect.c +++ b/src/fork-detect.c @@ -31,7 +31,7 @@ int ca_detect_fork(void) { static volatile pid_t pid = (pid_t) -1; - pid_t v; + pid_t v, we; /* Some really stupid applications (Hey, vim, that means you!) * love to fork after initializing gtk/libcanberra. This is really @@ -43,9 +43,10 @@ int ca_detect_fork(void) { * and this is not exactly crucial, so we don't care */ v = pid; + we = getpid(); - if (v == getpid() || v == (pid_t) -1) { - pid = getpid(); + if (v == we || v == (pid_t) -1) { + pid = we; return 0; } -- cgit