aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-02-03 13:50:21 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-02-08 14:10:42 -0300
commitda4aea0b5e60ec2351367b0facee24e6035a7129 (patch)
tree7892242d802abdadf07a9e27c7af8292940630a3 /nptl
parente9fed2438a1ff475821864f906286dc58907f06b (diff)
downloadglibc-da4aea0b5e60ec2351367b0facee24e6035a7129.zip
glibc-da4aea0b5e60ec2351367b0facee24e6035a7129.tar.gz
glibc-da4aea0b5e60ec2351367b0facee24e6035a7129.tar.bz2
pthread: Refactor semaphore code
The internal semaphore list code is moved to a specific file, sem_routine.c, and the internal usage is simplified to only two functions (one to insert a new semaphore and one to remove it from the internal list). There is no need to expose the internal locking, neither how the semaphore mapping is implemented. No functional or semantic change is expected, tested on x86_64-linux-gnu.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/Makefile2
-rw-r--r--nptl/semaphoreP.h21
2 files changed, 1 insertions, 22 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index c49134b..8fb7fee 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -137,7 +137,7 @@ libpthread-routines = nptl-init nptlfreeres vars events version pt-interp \
pthread_once \
old_pthread_atfork \
pthread_getcpuclockid \
- sem_init sem_destroy \
+ sem_init sem_destroy sem_routines \
sem_open sem_close sem_unlink \
sem_getvalue \
sem_wait sem_timedwait sem_clockwait sem_post \
diff --git a/nptl/semaphoreP.h b/nptl/semaphoreP.h
index 3585af0..1b78614 100644
--- a/nptl/semaphoreP.h
+++ b/nptl/semaphoreP.h
@@ -22,27 +22,6 @@
#define SEM_SHM_PREFIX "sem."
-/* Keeping track of currently used mappings. */
-struct inuse_sem
-{
- dev_t dev;
- ino_t ino;
- int refcnt;
- sem_t *sem;
- char name[];
-};
-
-
-/* The search tree for existing mappings. */
-extern void *__sem_mappings attribute_hidden;
-
-/* Lock to protect the search tree. */
-extern int __sem_mappings_lock attribute_hidden;
-
-
-/* Comparison function for search in tree with existing mappings. */
-extern int __sem_search (const void *a, const void *b) attribute_hidden;
-
static inline void __new_sem_open_init (struct new_sem *sem, unsigned value)
{
#if __HAVE_64B_ATOMICS