Artifact
5294a4bcc23c8d45440856837172d8fe4ea101d4:
- File
sdl2/mutex-functions.ss
— part of check-in
[c9770d8f7f]
at
2016-08-17 07:47:19
on branch trunk
— added sdl2
(user:
ovenpasta@pizzahack.eu
size: 1530)
0000: 28 64 65 66 69 6e 65 2d 73 64 6c 2d 66 75 6e 63 (define-sdl-func
0010: 20 28 2a 20 73 64 6c 2d 6d 75 74 65 78 2d 74 29 (* sdl-mutex-t)
0020: 20 73 64 6c 2d 63 72 65 61 74 65 2d 6d 75 74 65 sdl-create-mute
0030: 78 20 28 29 20 22 53 44 4c 5f 43 72 65 61 74 65 x () "SDL_Create
0040: 4d 75 74 65 78 22 29 0a 28 64 65 66 69 6e 65 2d Mutex").(define-
0050: 73 64 6c 2d 66 75 6e 63 20 69 6e 74 20 73 64 6c sdl-func int sdl
0060: 2d 6c 6f 63 6b 2d 6d 75 74 65 78 20 28 28 6d 75 -lock-mutex ((mu
0070: 74 65 78 20 28 2a 20 73 64 6c 2d 6d 75 74 65 78 tex (* sdl-mutex
0080: 2d 74 29 29 29 20 22 53 44 4c 5f 4c 6f 63 6b 4d -t))) "SDL_LockM
0090: 75 74 65 78 22 29 0a 28 64 65 66 69 6e 65 2d 73 utex").(define-s
00a0: 64 6c 2d 66 75 6e 63 20 69 6e 74 20 73 64 6c 2d dl-func int sdl-
00b0: 74 72 79 2d 6c 6f 63 6b 2d 6d 75 74 65 78 20 28 try-lock-mutex (
00c0: 28 6d 75 74 65 78 20 28 2a 20 73 64 6c 2d 6d 75 (mutex (* sdl-mu
00d0: 74 65 78 2d 74 29 29 29 20 22 53 44 4c 5f 54 72 tex-t))) "SDL_Tr
00e0: 79 4c 6f 63 6b 4d 75 74 65 78 22 29 0a 28 64 65 yLockMutex").(de
00f0: 66 69 6e 65 2d 73 64 6c 2d 66 75 6e 63 20 69 6e fine-sdl-func in
0100: 74 20 73 64 6c 2d 75 6e 6c 6f 63 6b 2d 6d 75 74 t sdl-unlock-mut
0110: 65 78 20 28 28 6d 75 74 65 78 20 28 2a 20 73 64 ex ((mutex (* sd
0120: 6c 2d 6d 75 74 65 78 2d 74 29 29 29 20 22 53 44 l-mutex-t))) "SD
0130: 4c 5f 55 6e 6c 6f 63 6b 4d 75 74 65 78 22 29 0a L_UnlockMutex").
0140: 28 64 65 66 69 6e 65 2d 73 64 6c 2d 66 75 6e 63 (define-sdl-func
0150: 20 76 6f 69 64 20 73 64 6c 2d 64 65 73 74 72 6f void sdl-destro
0160: 79 2d 6d 75 74 65 78 20 28 28 6d 75 74 65 78 20 y-mutex ((mutex
0170: 28 2a 20 73 64 6c 2d 6d 75 74 65 78 2d 74 29 29 (* sdl-mutex-t))
0180: 29 20 22 53 44 4c 5f 44 65 73 74 72 6f 79 4d 75 ) "SDL_DestroyMu
0190: 74 65 78 22 29 0a 28 64 65 66 69 6e 65 2d 73 64 tex").(define-sd
01a0: 6c 2d 66 75 6e 63 20 28 2a 20 73 64 6c 2d 73 65 l-func (* sdl-se
01b0: 6d 2d 74 29 20 73 64 6c 2d 63 72 65 61 74 65 2d m-t) sdl-create-
01c0: 73 65 6d 61 70 68 6f 72 65 20 28 28 69 6e 69 74 semaphore ((init
01d0: 69 61 6c 5f 76 61 6c 75 65 20 75 69 6e 74 33 32 ial_value uint32
01e0: 29 29 20 22 53 44 4c 5f 43 72 65 61 74 65 53 65 )) "SDL_CreateSe
01f0: 6d 61 70 68 6f 72 65 22 29 0a 28 64 65 66 69 6e maphore").(defin
0200: 65 2d 73 64 6c 2d 66 75 6e 63 20 76 6f 69 64 20 e-sdl-func void
0210: 73 64 6c 2d 64 65 73 74 72 6f 79 2d 73 65 6d 61 sdl-destroy-sema
0220: 70 68 6f 72 65 20 28 28 73 65 6d 20 28 2a 20 73 phore ((sem (* s
0230: 64 6c 2d 73 65 6d 2d 74 29 29 29 20 22 53 44 4c dl-sem-t))) "SDL
0240: 5f 44 65 73 74 72 6f 79 53 65 6d 61 70 68 6f 72 _DestroySemaphor
0250: 65 22 29 0a 28 64 65 66 69 6e 65 2d 73 64 6c 2d e").(define-sdl-
0260: 66 75 6e 63 20 69 6e 74 20 73 64 6c 2d 73 65 6d func int sdl-sem
0270: 2d 77 61 69 74 20 28 28 73 65 6d 20 28 2a 20 73 -wait ((sem (* s
0280: 64 6c 2d 73 65 6d 2d 74 29 29 29 20 22 53 44 4c dl-sem-t))) "SDL
0290: 5f 53 65 6d 57 61 69 74 22 29 0a 28 64 65 66 69 _SemWait").(defi
02a0: 6e 65 2d 73 64 6c 2d 66 75 6e 63 20 69 6e 74 20 ne-sdl-func int
02b0: 73 64 6c 2d 73 65 6d 2d 74 72 79 2d 77 61 69 74 sdl-sem-try-wait
02c0: 20 28 28 73 65 6d 20 28 2a 20 73 64 6c 2d 73 65 ((sem (* sdl-se
02d0: 6d 2d 74 29 29 29 20 22 53 44 4c 5f 53 65 6d 54 m-t))) "SDL_SemT
02e0: 72 79 57 61 69 74 22 29 0a 28 64 65 66 69 6e 65 ryWait").(define
02f0: 2d 73 64 6c 2d 66 75 6e 63 20 69 6e 74 20 73 64 -sdl-func int sd
0300: 6c 2d 73 65 6d 2d 77 61 69 74 2d 74 69 6d 65 6f l-sem-wait-timeo
0310: 75 74 20 28 28 73 65 6d 20 28 2a 20 73 64 6c 2d ut ((sem (* sdl-
0320: 73 65 6d 2d 74 29 29 20 28 6d 73 20 75 69 6e 74 sem-t)) (ms uint
0330: 33 32 29 29 20 22 53 44 4c 5f 53 65 6d 57 61 69 32)) "SDL_SemWai
0340: 74 54 69 6d 65 6f 75 74 22 29 0a 28 64 65 66 69 tTimeout").(defi
0350: 6e 65 2d 73 64 6c 2d 66 75 6e 63 20 69 6e 74 20 ne-sdl-func int
0360: 73 64 6c 2d 73 65 6d 2d 70 6f 73 74 20 28 28 73 sdl-sem-post ((s
0370: 65 6d 20 28 2a 20 73 64 6c 2d 73 65 6d 2d 74 29 em (* sdl-sem-t)
0380: 29 29 20 22 53 44 4c 5f 53 65 6d 50 6f 73 74 22 )) "SDL_SemPost"
0390: 29 0a 28 64 65 66 69 6e 65 2d 73 64 6c 2d 66 75 ).(define-sdl-fu
03a0: 6e 63 20 75 69 6e 74 33 32 20 73 64 6c 2d 73 65 nc uint32 sdl-se
03b0: 6d 2d 76 61 6c 75 65 20 28 28 73 65 6d 20 28 2a m-value ((sem (*
03c0: 20 73 64 6c 2d 73 65 6d 2d 74 29 29 29 20 22 53 sdl-sem-t))) "S
03d0: 44 4c 5f 53 65 6d 56 61 6c 75 65 22 29 0a 28 64 DL_SemValue").(d
03e0: 65 66 69 6e 65 2d 73 64 6c 2d 66 75 6e 63 20 28 efine-sdl-func (
03f0: 2a 20 73 64 6c 2d 63 6f 6e 64 2d 74 29 20 73 64 * sdl-cond-t) sd
0400: 6c 2d 63 72 65 61 74 65 2d 63 6f 6e 64 20 28 29 l-create-cond ()
0410: 20 22 53 44 4c 5f 43 72 65 61 74 65 43 6f 6e 64 "SDL_CreateCond
0420: 22 29 0a 28 64 65 66 69 6e 65 2d 73 64 6c 2d 66 ").(define-sdl-f
0430: 75 6e 63 20 76 6f 69 64 20 73 64 6c 2d 64 65 73 unc void sdl-des
0440: 74 72 6f 79 2d 63 6f 6e 64 20 28 28 63 6f 6e 64 troy-cond ((cond
0450: 20 28 2a 20 73 64 6c 2d 63 6f 6e 64 2d 74 29 29 (* sdl-cond-t))
0460: 29 20 22 53 44 4c 5f 44 65 73 74 72 6f 79 43 6f ) "SDL_DestroyCo
0470: 6e 64 22 29 0a 28 64 65 66 69 6e 65 2d 73 64 6c nd").(define-sdl
0480: 2d 66 75 6e 63 20 69 6e 74 20 73 64 6c 2d 63 6f -func int sdl-co
0490: 6e 64 2d 73 69 67 6e 61 6c 20 28 28 63 6f 6e 64 nd-signal ((cond
04a0: 20 28 2a 20 73 64 6c 2d 63 6f 6e 64 2d 74 29 29 (* sdl-cond-t))
04b0: 29 20 22 53 44 4c 5f 43 6f 6e 64 53 69 67 6e 61 ) "SDL_CondSigna
04c0: 6c 22 29 0a 28 64 65 66 69 6e 65 2d 73 64 6c 2d l").(define-sdl-
04d0: 66 75 6e 63 20 69 6e 74 20 73 64 6c 2d 63 6f 6e func int sdl-con
04e0: 64 2d 62 72 6f 61 64 63 61 73 74 20 28 28 63 6f d-broadcast ((co
04f0: 6e 64 20 28 2a 20 73 64 6c 2d 63 6f 6e 64 2d 74 nd (* sdl-cond-t
0500: 29 29 29 20 22 53 44 4c 5f 43 6f 6e 64 42 72 6f ))) "SDL_CondBro
0510: 61 64 63 61 73 74 22 29 0a 28 64 65 66 69 6e 65 adcast").(define
0520: 2d 73 64 6c 2d 66 75 6e 63 20 69 6e 74 20 73 64 -sdl-func int sd
0530: 6c 2d 63 6f 6e 64 2d 77 61 69 74 20 28 28 63 6f l-cond-wait ((co
0540: 6e 64 20 28 2a 20 73 64 6c 2d 63 6f 6e 64 2d 74 nd (* sdl-cond-t
0550: 29 29 20 28 6d 75 74 65 78 20 28 2a 20 73 64 6c )) (mutex (* sdl
0560: 2d 6d 75 74 65 78 2d 74 29 29 29 20 22 53 44 4c -mutex-t))) "SDL
0570: 5f 43 6f 6e 64 57 61 69 74 22 29 0a 28 64 65 66 _CondWait").(def
0580: 69 6e 65 2d 73 64 6c 2d 66 75 6e 63 20 69 6e 74 ine-sdl-func int
0590: 20 73 64 6c 2d 63 6f 6e 64 2d 77 61 69 74 2d 74 sdl-cond-wait-t
05a0: 69 6d 65 6f 75 74 20 28 28 63 6f 6e 64 20 28 2a imeout ((cond (*
05b0: 20 73 64 6c 2d 63 6f 6e 64 2d 74 29 29 20 28 6d sdl-cond-t)) (m
05c0: 75 74 65 78 20 28 2a 20 73 64 6c 2d 6d 75 74 65 utex (* sdl-mute
05d0: 78 2d 74 29 29 20 28 6d 73 20 75 69 6e 74 33 32 x-t)) (ms uint32
05e0: 29 29 20 22 53 44 4c 5f 43 6f 6e 64 57 61 69 74 )) "SDL_CondWait
05f0: 54 69 6d 65 6f 75 74 22 29 0a Timeout").