mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-28 07:18:30 +00:00
Use *NSYNC for POSIX threads locking APIs
Condition variables, barriers, and r/w locks now work very well.
This commit is contained in:
parent
3de35e196c
commit
b5cb71ab84
197 changed files with 3734 additions and 3817 deletions
|
@ -1,2 +1,12 @@
|
|||
.include "o/libc/nt/codegen.inc"
|
||||
.imp kernel32,__imp_CreateSemaphoreW,CreateSemaphoreW,0
|
||||
|
||||
.text.windows
|
||||
CreateSemaphore:
|
||||
push %rbp
|
||||
mov %rsp,%rbp
|
||||
.profilable
|
||||
mov __imp_CreateSemaphoreW(%rip),%rax
|
||||
jmp __sysv2nt
|
||||
.endfn CreateSemaphore,globl
|
||||
.previous
|
||||
|
|
|
@ -166,7 +166,7 @@ imp 'CreateMutexEx' CreateMutexExW kernel32 0
|
|||
imp 'CreatePrivateNamespace' CreatePrivateNamespaceW kernel32 0
|
||||
imp 'CreateRemoteThread' CreateRemoteThread kernel32 0
|
||||
imp 'CreateRemoteThreadEx' CreateRemoteThreadEx kernel32 0
|
||||
imp 'CreateSemaphore' CreateSemaphoreW kernel32 0
|
||||
imp 'CreateSemaphore' CreateSemaphoreW kernel32 0 4
|
||||
imp 'CreateSemaphoreEx' CreateSemaphoreExW kernel32 0
|
||||
imp 'CreateSymbolicLinkTransacted' CreateSymbolicLinkTransactedW kernel32 238
|
||||
imp 'CreateTapePartition' CreateTapePartition kernel32 240
|
||||
|
|
|
@ -82,6 +82,10 @@ bool32 SetWaitableTimer(int64_t hTimer, const int64_t *lpDueTimeAsFtOrNegRela,
|
|||
int32_t opt_lPeriodMs, NtTimerapcroutine opt_callback,
|
||||
void *lpArgToCallback, bool32 fUnsleepSystem);
|
||||
|
||||
int64_t CreateSemaphore(struct NtSecurityAttributes *opt_lpSemaphoreAttributes,
|
||||
uint32_t lInitialCount, uint32_t lMaximumCount,
|
||||
const char16_t *opt_lpName);
|
||||
|
||||
int32_t SetEvent(int64_t hEvent);
|
||||
int32_t ResetEvent(int64_t hEvent);
|
||||
int32_t PulseEvent(int64_t hEvent);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue