diff options
author | Sander Vrijders <[email protected]> | 2016-07-07 15:44:16 +0200 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2016-07-07 15:44:16 +0200 |
commit | cc377e56c6fd25403fc7ccf5f83c82e3d85a767b (patch) | |
tree | 33604c48880d3a01d7053608584236dd15fc43e8 /src/lib/shm_ap_rbuff.c | |
parent | 80441117cf61137c6a8c97e0779e70d76ae8541d (diff) | |
parent | b3870ef695a256be4a4ed28a991c39aab37bd6f3 (diff) | |
download | ouroboros-cc377e56c6fd25403fc7ccf5f83c82e3d85a767b.tar.gz ouroboros-cc377e56c6fd25403fc7ccf5f83c82e3d85a767b.zip |
Merged in dstaesse/ouroboros/be-lockfile (pull request #165)
lib: Add lockfile
Diffstat (limited to 'src/lib/shm_ap_rbuff.c')
-rw-r--r-- | src/lib/shm_ap_rbuff.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/shm_ap_rbuff.c b/src/lib/shm_ap_rbuff.c index 4eb91136..618c4c19 100644 --- a/src/lib/shm_ap_rbuff.c +++ b/src/lib/shm_ap_rbuff.c @@ -21,12 +21,13 @@ */ #include <ouroboros/config.h> +#include <ouroboros/errno.h> #define OUROBOROS_PREFIX "shm_ap_rbuff" #include <ouroboros/logs.h> #include <ouroboros/shm_ap_rbuff.h> -#include <ouroboros/shm_du_map.h> +#include <ouroboros/lockfile.h> #include <pthread.h> #include <sys/mman.h> @@ -35,7 +36,6 @@ #include <string.h> #include <stdint.h> #include <unistd.h> -#include <errno.h> #include <signal.h> #include <sys/stat.h> @@ -215,7 +215,7 @@ void shm_ap_rbuff_close(struct shm_ap_rbuff * rb) void shm_ap_rbuff_destroy(struct shm_ap_rbuff * rb) { char fn[25]; - struct shm_du_map * dum = NULL; + struct lockfile * lf = NULL; if (rb == NULL) { LOG_DBGF("Bogus input. Bugging out."); @@ -223,15 +223,17 @@ void shm_ap_rbuff_destroy(struct shm_ap_rbuff * rb) } if (rb->api != getpid()) { - dum = shm_du_map_open(); - if (shm_du_map_owner(dum) == getpid()) { + lf = lockfile_open(); + if (lf == NULL) + return; + if (lockfile_owner(lf) == getpid()) { LOG_DBGF("Ringbuffer %d destroyed by IRMd %d.", rb->api, getpid()); - shm_du_map_close(dum); + lockfile_close(lf); } else { LOG_ERR("AP-I %d tried to destroy rbuff owned by %d.", getpid(), rb->api); - shm_du_map_close(dum); + lockfile_close(lf); return; } } |