[Sheepdog] [PATCH] collie: silence semaphore warning with multiple local collie daemons
FUJITA Tomonori
fujita.tomonori at lab.ntt.co.jp
Tue Apr 6 04:33:01 CEST 2010
We get semaphore warnings if multiple collie daemons run on the local
host.
Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
---
lib/logger.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/logger.c b/lib/logger.c
index 817fd0e..41dc0af 100644
--- a/lib/logger.c
+++ b/lib/logger.c
@@ -34,7 +34,6 @@
#include "logger.h"
-#define SEMKEY 0xA8L
#define LOGDBG 0
#if LOGDBG
@@ -47,6 +46,7 @@ static struct logarea *la;
static char *log_name;
static int log_level;
static pid_t pid;
+static key_t semkey;
static int logarea_init (int size)
{
@@ -110,7 +110,7 @@ static int logarea_init (int size)
shmctl(shmid, IPC_RMID, NULL);
- if ((la->semid = semget(SEMKEY, 1, 0666 | IPC_CREAT)) < 0) {
+ if ((la->semid = semget(semkey, 1, 0666 | IPC_CREAT)) < 0) {
syslog(LOG_ERR, "semget failed %d", errno);
shmdt(la->buff);
shmdt(la->start);
@@ -349,6 +349,8 @@ int log_init(char *program_name, int size, int daemon, int level)
logdbg(stderr,"enter log_init\n");
log_name = program_name;
+ semkey = random();
+
if (daemon) {
struct sigaction sa_old;
struct sigaction sa_new;
--
1.7.0
More information about the sheepdog
mailing list