summaryrefslogtreecommitdiff
path: root/libs/libmdbx/src/test/darwin
diff options
context:
space:
mode:
authorLeonid Yuriev <leo@yuriev.ru>2020-10-08 02:02:18 +0300
committerGeorge Hazan <ghazan@miranda.im>2020-10-09 16:50:37 +0300
commita519d4617ed83a2167a693ae87934e56889fef05 (patch)
tree85c3aea76fe15268fc0891cf18c328913c6d4347 /libs/libmdbx/src/test/darwin
parentbc58e7ec8ef67c37b6d302eaa2e76deedec03106 (diff)
libmdbx: switch to original amalgamated source code (v0.9.1.18)
Amalgamated source code is the recommended form for embedding libmdbx in non-CMake build systems. This amalgamated version contains a minimum of files, is fully ready for use, and make impossible a number of errors. To upgrade or switch to a different version, just unpack to the `src` subdirectory a corresponding `libmdbx-amalgamated-X_Y_Z.zip` at the https://github.com/erthink/libmdbx/releases. For instance, the https://github.com/erthink/libmdbx/releases/download/v0.9.2/libmdbx-amalgamated-0_9_2.zip for the next release. -- Minimal changes have been made to the build configuration: 1. For use the standard `DllMain()` entry of libmdbx: - added the `MDBX_BUILD_SHARED_LIBRARY=1` option; - removed the `MDBX_CONFIG_MANUAL_TLS_CALLBACK` option; - deleted the `miranda.c` file containing only `DllMain()` with the `mdbx_dll_handle()` call, now this is done by the library itself. 2. Removed refs to extra files (that missing in the amalgamated source code): - for building `libmdbx.dll` only the `mdbx.h` and `mdbx.c` are used, but not `mdbx.c++` for a C++ API; - for building the `mdbx_chk`, `mdbx_load`, and `mdbx_dump` utilities only it own sources are used. -- Last libmdbx changes: - Fixed missing installation of `mdbx.h++`. - Fixed use of obsolete `__noreturn`. - Fixed use of `yield` instruction on ARM if unsupported. - Added pthread workaround for buggy toolchain/cmake/buildroot. - Fixed use of `pthread_yield()` for non-GLIBC. - Fixed use of `RegGetValueA()` on Windows 2000/XP. - Fixed use of `GetTickCount64()` on Windows 2000/XP. - Fixed opening DB on a network shares (in the exclusive mode). - Fixed copy&paste typos. - Fixed minor false-positive GCC warning.
Diffstat (limited to 'libs/libmdbx/src/test/darwin')
-rw-r--r--libs/libmdbx/src/test/darwin/LICENSE24
-rw-r--r--libs/libmdbx/src/test/darwin/README.md8
-rw-r--r--libs/libmdbx/src/test/darwin/pthread_barrier.c110
-rw-r--r--libs/libmdbx/src/test/darwin/pthread_barrier.h83
4 files changed, 0 insertions, 225 deletions
diff --git a/libs/libmdbx/src/test/darwin/LICENSE b/libs/libmdbx/src/test/darwin/LICENSE
deleted file mode 100644
index 6a0dd3066b..0000000000
--- a/libs/libmdbx/src/test/darwin/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-Copyright (c) 2015, Aleksey Demakov
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
diff --git a/libs/libmdbx/src/test/darwin/README.md b/libs/libmdbx/src/test/darwin/README.md
deleted file mode 100644
index a6a8fd1a91..0000000000
--- a/libs/libmdbx/src/test/darwin/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# DarwinPthreadBarrier
-
-A pthread_barrier_t implementation for Mac OS/X
-
-There is no pthread_barrier_t in Mac OS/X pthreads. This project fixes
-this omission by providing a simple-minded barrier implementation based
-on a pair of pthread_mutex_t and pthread_cond_t.
-
diff --git a/libs/libmdbx/src/test/darwin/pthread_barrier.c b/libs/libmdbx/src/test/darwin/pthread_barrier.c
deleted file mode 100644
index 054aa00708..0000000000
--- a/libs/libmdbx/src/test/darwin/pthread_barrier.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2015, Aleksey Demakov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "pthread_barrier.h"
-
-#include <errno.h>
-
-#ifdef __APPLE__
-
-int pthread_barrierattr_init(pthread_barrierattr_t *attr) {
- memset(attr, 0, sizeof(pthread_barrierattr_t));
- int m = pthread_mutexattr_init(&attr->mattr);
- int c = pthread_condattr_init(&attr->cattr);
- return m ? m : c;
-}
-
-int pthread_barrierattr_destroy(pthread_barrierattr_t *attr) {
- int c = pthread_condattr_destroy(&attr->cattr);
- int m = pthread_mutexattr_destroy(&attr->mattr);
- return m ? m : c;
-}
-
-int pthread_barrierattr_getpshared(const pthread_barrierattr_t *__restrict attr,
- int *__restrict pshared) {
- return pthread_condattr_getpshared(&attr->cattr, pshared);
-}
-
-int pthread_barrierattr_setpshared(pthread_barrierattr_t *attr, int pshared) {
- int m = pthread_mutexattr_setpshared(&attr->mattr, pshared);
- int c = pthread_condattr_setpshared(&attr->cattr, pshared);
- return m ? m : c;
-}
-
-int pthread_barrier_init(pthread_barrier_t *__restrict barrier,
- const pthread_barrierattr_t *__restrict attr,
- unsigned count) {
- if (count == 0)
- return errno = EINVAL;
-
- int rc = pthread_mutex_init(&barrier->mutex, attr ? &attr->mattr : 0);
- if (rc)
- return rc;
-
- rc = pthread_cond_init(&barrier->cond, attr ? &attr->cattr : 0);
- if (rc) {
- int errno_save = errno;
- pthread_mutex_destroy(&barrier->mutex);
- errno = errno_save;
- return rc;
- }
-
- barrier->limit = count;
- barrier->count = 0;
- barrier->phase = 0;
- return 0;
-}
-
-int pthread_barrier_destroy(pthread_barrier_t *barrier) {
- pthread_mutex_destroy(&barrier->mutex);
- pthread_cond_destroy(&barrier->cond);
- return 0;
-}
-
-int pthread_barrier_wait(pthread_barrier_t *barrier) {
- int rc = pthread_mutex_lock(&barrier->mutex);
- if (rc)
- return rc;
-
- barrier->count++;
- if (barrier->count >= barrier->limit) {
- barrier->phase++;
- barrier->count = 0;
- pthread_cond_broadcast(&barrier->cond);
- pthread_mutex_unlock(&barrier->mutex);
- return PTHREAD_BARRIER_SERIAL_THREAD;
- } else {
- unsigned phase = barrier->phase;
- do
- pthread_cond_wait(&barrier->cond, &barrier->mutex);
- while (phase == barrier->phase);
- pthread_mutex_unlock(&barrier->mutex);
- return 0;
- }
-}
-
-#endif /* __APPLE__ */
diff --git a/libs/libmdbx/src/test/darwin/pthread_barrier.h b/libs/libmdbx/src/test/darwin/pthread_barrier.h
deleted file mode 100644
index efa9b9b751..0000000000
--- a/libs/libmdbx/src/test/darwin/pthread_barrier.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2015, Aleksey Demakov
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef PTHREAD_BARRIER_H
-#define PTHREAD_BARRIER_H
-
-#include <pthread.h>
-
-#ifdef __APPLE__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if !defined(PTHREAD_BARRIER_SERIAL_THREAD)
-#define PTHREAD_BARRIER_SERIAL_THREAD (1)
-#endif
-
-#if !defined(PTHREAD_PROCESS_PRIVATE)
-#define PTHREAD_PROCESS_PRIVATE (42)
-#endif
-#if !defined(PTHREAD_PROCESS_SHARED)
-#define PTHREAD_PROCESS_SHARED (43)
-#endif
-
-typedef struct {
- pthread_mutexattr_t mattr;
- pthread_condattr_t cattr;
-} pthread_barrierattr_t;
-
-typedef struct {
- pthread_mutex_t mutex;
- pthread_cond_t cond;
- unsigned int limit;
- unsigned int count;
- unsigned int phase;
-} pthread_barrier_t;
-
-int pthread_barrierattr_init(pthread_barrierattr_t *attr);
-int pthread_barrierattr_destroy(pthread_barrierattr_t *attr);
-
-int pthread_barrierattr_getpshared(const pthread_barrierattr_t *__restrict attr,
- int *__restrict pshared);
-int pthread_barrierattr_setpshared(pthread_barrierattr_t *attr, int pshared);
-
-int pthread_barrier_init(pthread_barrier_t *__restrict barrier,
- const pthread_barrierattr_t *__restrict attr,
- unsigned int count);
-int pthread_barrier_destroy(pthread_barrier_t *barrier);
-
-int pthread_barrier_wait(pthread_barrier_t *barrier);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __APPLE__ */
-
-#endif /* PTHREAD_BARRIER_H */