From c9ca5b454afdc78770ead263d081a2b377cafbe8 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Sun, 16 Apr 2017 12:37:01 +0200 Subject: [PATCH] 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. --- ipc.c | 48 +++++++++++++++++++++--------------------------- 1 file changed, 21 insertions(+), 27 deletions(-) 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) -- 2.39.2