From: Andre Noll Date: Sun, 16 Apr 2017 10:37:01 +0000 (+0200) Subject: ipc: Combine mutex_lock() and lock_dss(). X-Git-Tag: v1.0.0~28 X-Git-Url: http://git.tuebingen.mpg.de/dss.git/log?p=dss.git;a=commitdiff_plain;h=c9ca5b454afdc78770ead263d081a2b377cafbe8 ipc: Combine mutex_lock() and lock_dss(). The former function is only called by the latter, and both are short, so let's combine them. --- diff --git a/ipc.c b/ipc.c index bc8995a..880ce17 100644 --- a/ipc.c +++ b/ipc.c @@ -64,31 +64,6 @@ static int do_semop(int id, struct sembuf *sops, int num) return -ERRNO_TO_DSS_ERROR(errno); } -static int mutex_lock(int id) -{ - struct sembuf sops[4]; - - DSS_DEBUG_LOG(("locking\n")); - - sops[0].sem_num = 0; - sops[0].sem_op = 0; - sops[0].sem_flg = SEM_UNDO | IPC_NOWAIT; - - sops[1].sem_num = 0; - sops[1].sem_op = 1; - sops[1].sem_flg = SEM_UNDO | IPC_NOWAIT; - - sops[2].sem_num = 1; - sops[2].sem_op = 0; - sops[2].sem_flg = SEM_UNDO | IPC_NOWAIT; - - sops[3].sem_num = 1; - sops[3].sem_op = 1; - sops[3].sem_flg = SEM_UNDO | IPC_NOWAIT; - - return do_semop(id, sops, 4); -} - static bool mutex_is_locked(int id) { struct sembuf sops; @@ -108,13 +83,32 @@ static bool mutex_is_locked(int id) int lock_dss(char *config_file) { - int ret; + int ret, id; + struct sembuf sops[4]; key_t key = get_key(config_file); ret = mutex_get(key, IPC_CREAT | 0600); if (ret < 0) return ret; - return mutex_lock(ret); + id = ret; + + sops[0].sem_num = 0; + sops[0].sem_op = 0; + sops[0].sem_flg = SEM_UNDO | IPC_NOWAIT; + + sops[1].sem_num = 0; + sops[1].sem_op = 1; + sops[1].sem_flg = SEM_UNDO | IPC_NOWAIT; + + sops[2].sem_num = 1; + sops[2].sem_op = 0; + sops[2].sem_flg = SEM_UNDO | IPC_NOWAIT; + + sops[3].sem_num = 1; + sops[3].sem_op = 1; + sops[3].sem_flg = SEM_UNDO | IPC_NOWAIT; + + return do_semop(id, sops, 4); } int get_dss_pid(char *config_file, pid_t *pid)