summary refs log tree commit diff
path: root/pkgs/os-specific/linux/musl/0002-in-pthread_mutex_timedlock-avoid-repeatedly-reading-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/musl/0002-in-pthread_mutex_timedlock-avoid-repeatedly-reading-.patch')
-rw-r--r--pkgs/os-specific/linux/musl/0002-in-pthread_mutex_timedlock-avoid-repeatedly-reading-.patch41
1 files changed, 0 insertions, 41 deletions
diff --git a/pkgs/os-specific/linux/musl/0002-in-pthread_mutex_timedlock-avoid-repeatedly-reading-.patch b/pkgs/os-specific/linux/musl/0002-in-pthread_mutex_timedlock-avoid-repeatedly-reading-.patch
deleted file mode 100644
index 2f611fc467e..00000000000
--- a/pkgs/os-specific/linux/musl/0002-in-pthread_mutex_timedlock-avoid-repeatedly-reading-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From d1fa28860634af4f0efd70d533a756b51a45f83e Mon Sep 17 00:00:00 2001
-From: Rich Felker <dalias@aerifal.cx>
-Date: Tue, 4 Sep 2018 21:31:47 -0400
-Subject: [PATCH 2/3] in pthread_mutex_timedlock, avoid repeatedly reading
- mutex type field
-
-compiler cannot cache immutable fields of the mutex object across
-external calls it can't see, much less across atomics.
----
- src/thread/pthread_mutex_timedlock.c | 7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/src/thread/pthread_mutex_timedlock.c b/src/thread/pthread_mutex_timedlock.c
-index 0a240e79..f91f4a61 100644
---- a/src/thread/pthread_mutex_timedlock.c
-+++ b/src/thread/pthread_mutex_timedlock.c
-@@ -6,7 +6,8 @@ int __pthread_mutex_timedlock(pthread_mutex_t *restrict m, const struct timespec
- 	    && !a_cas(&m->_m_lock, 0, EBUSY))
- 		return 0;
- 
--	int r, t, priv = (m->_m_type & 128) ^ 128;
-+	int type = m->_m_type;
-+	int r, t, priv = (type & 128) ^ 128;
- 
- 	r = pthread_mutex_trylock(m);
- 	if (r != EBUSY) return r;
-@@ -15,9 +16,9 @@ int __pthread_mutex_timedlock(pthread_mutex_t *restrict m, const struct timespec
- 	while (spins-- && m->_m_lock && !m->_m_waiters) a_spin();
- 
- 	while ((r=pthread_mutex_trylock(m)) == EBUSY) {
--		if (!(r=m->_m_lock) || ((r&0x40000000) && (m->_m_type&4)))
-+		if (!(r=m->_m_lock) || ((r&0x40000000) && (type&4)))
- 			continue;
--		if ((m->_m_type&3) == PTHREAD_MUTEX_ERRORCHECK
-+		if ((type&3) == PTHREAD_MUTEX_ERRORCHECK
- 		 && (r&0x7fffffff) == __pthread_self()->tid)
- 			return EDEADLK;
- 
--- 
-2.19.0
-