Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6303 serge 1
format MS COFF
2
use32
3
 
4
MUTEX.lock      equ 0
5
MUTEX.handle    equ 4
6
 
7
section '.text' align 16 code readable executable
8
 
9
@mutex_lock_timeout@8
10
        push    esi
11
        mov     esi, edx
12
        push    ebx
13
        mov     edx, 1
14
        lock xadd [ecx+MUTEX.lock], edx
15
        mov     eax, 1
16
        test    edx, edx
17
        jnz     .slow
18
.ok:
19
        pop     ebx
20
        pop     esi
21
        retn
22
align 4
23
.slow:
24
        mov     edx, 2
25
        xchg    edx, [ecx+MUTEX.lock]
26
        xor     eax, eax
27
        test    edx, edx
28
        jz      .ok
29
 
30
        mov     edx, 2
31
        mov     ecx, [ecx+MUTEX.handle]
32
        mov     al, 77
33
        mov     ebx, edx
34
        int     0x40
35
        add     eax, 1
36
        pop     ebx
37
        pop     esi
38
        ret
39