diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2010-04-27 17:31:28 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2010-04-27 17:31:28 +0200 |
commit | cbe2e3d44496ec7c6418e7e74ce917f2086a2947 (patch) | |
tree | c8a38b598ad1ea3bdb375674f27386d5fbc361e8 /runtime/atomic-posix-sem.c | |
parent | d19806431653e6575a002ab48206c16d3041e465 (diff) | |
download | rsyslog-cbe2e3d44496ec7c6418e7e74ce917f2086a2947.tar.gz rsyslog-cbe2e3d44496ec7c6418e7e74ce917f2086a2947.tar.bz2 rsyslog-cbe2e3d44496ec7c6418e7e74ce917f2086a2947.zip |
bugfix: problems with atomic operations emulation
replaced atomic operation emulation with new code. The previous code
seemed to have some issue and also limited concurrency severely. The
whole atomic operation emulation has been rewritten.
Diffstat (limited to 'runtime/atomic-posix-sem.c')
-rw-r--r-- | runtime/atomic-posix-sem.c | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/runtime/atomic-posix-sem.c b/runtime/atomic-posix-sem.c deleted file mode 100644 index 979fae02..00000000 --- a/runtime/atomic-posix-sem.c +++ /dev/null @@ -1,70 +0,0 @@ -/* atomic_posix_sem.c: This file supplies an emulation for atomic operations using - * POSIX semaphores. - * - * Copyright 2010 DResearch Digital Media Systems GmbH - * - * This file is part of the rsyslog runtime library. - * - * The rsyslog runtime library is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * The rsyslog runtime library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with the rsyslog runtime library. If not, see <http://www.gnu.org/licenses/>. - * - * A copy of the GPL can be found in the file "COPYING" in this distribution. - * A copy of the LGPL can be found in the file "COPYING.LESSER" in this distribution. - */ - -#include "config.h" -#ifndef HAVE_ATOMIC_BUILTINS -#ifdef HAVE_SEMAPHORE_H -#include <semaphore.h> -#include <errno.h> - -#include "atomic.h" -#include "rsyslog.h" -#include "srUtils.h" - -sem_t atomicSem; - -rsRetVal -atomicSemInit(void) -{ - DEFiRet; - - dbgprintf("init posix semaphore for atomics emulation\n"); - if(sem_init(&atomicSem, 0, 1) == -1) - { - char errStr[1024]; - rs_strerror_r(errno, errStr, sizeof(errStr)); - dbgprintf("init posix semaphore for atomics emulation failed: %s\n", errStr); - iRet = RS_RET_SYS_ERR; /* the right error code ??? */ - } - - RETiRet; -} - -void -atomicSemExit(void) -{ - dbgprintf("destroy posix semaphore for atomics emulation\n"); - if(sem_destroy(&atomicSem) == -1) - { - char errStr[1024]; - rs_strerror_r(errno, errStr, sizeof(errStr)); - dbgprintf("destroy posix semaphore for atomics emulation failed: %s\n", errStr); - } -} - -#endif /* HAVE_SEMAPHORE_H */ -#endif /* !defined(HAVE_ATOMIC_BUILTINS) */ - -/* vim:set ai: - */ |