mailing list of musl libc
 help / color / mirror / code / Atom feed
56b01d87c9042e8ab8df197573a8ba0c2bf69bc0 blob 603 bytes (raw)

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

int mtx_trylock(mtx_t *m)
{
	int tid, old, own, ret = 0;
	pthread_t self;

	if (m->_m_type == PTHREAD_MUTEX_NORMAL) {
		return a_cas(&m->_m_lock, 0, thrd_busy) & thrd_busy;
	} else {
       		self = __pthread_self();
       		tid = self->tid;
		old = m->_m_lock;
		own = old & 0x7fffffff;
		if (own == tid) {
			if ((unsigned)m->_m_count >= INT_MAX) return thrd_error;
			else m->_m_count++;
		} else {
			if ((own && !(own & 0x40000000)) || a_cas(&m->_m_lock, old, tid)!=old)
				return thrd_busy;
		}
	}
	return thrd_success;
}
debug log:

solving 9e3e0a5 ...
found 9e3e0a5 in https://inbox.vuxu.org/musl/1407144603.8274.248.camel@eris.loria.fr/

applying [1/1] https://inbox.vuxu.org/musl/1407144603.8274.248.camel@eris.loria.fr/
diff --git a/src/thread/mtx_trylock.c b/src/thread/mtx_trylock.c\r
new file mode 100644\r
index 0000000..9e3e0a5\r

1:7: trailing whitespace.
#include "pthread_impl.h"\r
1:8: trailing whitespace.
#include <threads.h>\r
1:9: trailing whitespace.
\r
1:10: trailing whitespace.
int mtx_trylock(mtx_t *m)\r
1:11: trailing whitespace.
{\r
Checking patch src/thread/mtx_trylock.c...
Applied patch src/thread/mtx_trylock.c cleanly.
warning: squelched 20 whitespace errors
warning: 25 lines add whitespace errors.

index at:
100644 56b01d87c9042e8ab8df197573a8ba0c2bf69bc0	src/thread/mtx_trylock.c

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).