mailing list of musl libc
 help / color / mirror / code / Atom feed
c1f07fc062ee6a46c8d98e97dfadb39421130aed blob 593 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#include "pthread_impl.h"

static inline void __lock_fast(volatile int *l)
{
	extern void __lock_slow(volatile int*, int);
	if (!libc.threads_minus_1) return;
        /* fast path: INT_MIN for holding the lock, +1 to count this
           thread in the critical section. */
	int current = a_cas(l, 0, INT_MIN + 1);
        if (!current) return;
        __lock_slow(l, current);
}

static inline void __unlock_fast(volatile int *l)
{
	/* We have to check if l[0] had been touched at all. */
	if (l[0] < 0) {
		if (a_fetch_add(l, -(INT_MIN + 1)) != (INT_MIN + 1)) {
			__wake(l, 1, 1);
		}
	}
}
debug log:

solving c1f07fc0 ...
found c1f07fc0 in https://inbox.vuxu.org/musl/0ec8d5597db7fcc1090b7b2120e3d441624db68c.1498228733.git.Jens.Gustedt@inria.fr/

applying [1/1] https://inbox.vuxu.org/musl/0ec8d5597db7fcc1090b7b2120e3d441624db68c.1498228733.git.Jens.Gustedt@inria.fr/
diff --git a/src/internal/__lock.h b/src/internal/__lock.h
new file mode 100644
index 00000000..c1f07fc0

Checking patch src/internal/__lock.h...
Applied patch src/internal/__lock.h cleanly.

index at:
100644 c1f07fc062ee6a46c8d98e97dfadb39421130aed	src/internal/__lock.h

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).