Mercurial > hg > nginx-quic
comparison src/os/unix/ngx_x86_mutex.h @ 83:a7e45c45a95c
nginx-0.0.1-2003-04-28-19:06:39 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 28 Apr 2003 15:06:39 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
82:fccdb921e8b8 | 83:a7e45c45a95c |
---|---|
1 | |
2 | |
3 typedef struct { | |
4 int lock; | |
5 } ngx_mutex_t; | |
6 | |
7 | |
8 static inline int ngx_spin_lock(ngx_mutex_t *m, int count) | |
9 { | |
10 int lock; | |
11 | |
12 __asm__ __volatile(" | |
13 | |
14 get_lock: | |
15 mov $1, %1 | |
16 xchg %1, %2 | |
17 cmp $0, %1 | |
18 jne spin_lock | |
19 | |
20 spin_lock: | |
21 cmp $0, %3 | |
22 je failed | |
23 | |
24 dec %3 | |
25 rep nop | |
26 cmp $0, %2 | |
27 jne spin_lock | |
28 | |
29 ": "=q" (lock), "m" (m->lock), "q" (count)); | |
30 } |