Go to the documentation of this file.
26 #if defined(__MINGW64_VERSION_MAJOR)
37 HANDLE existing_event, created_event;
39 created_event = CreateEvent(NULL, 1, 0, NULL);
40 if (created_event == 0) {
45 existing_event = InterlockedCompareExchangePointer(&guard->event,
49 if (existing_event == NULL) {
53 result = SetEvent(created_event);
60 CloseHandle(created_event);
61 result = WaitForSingleObject(existing_event, INFINITE);
62 assert(
result == WAIT_OBJECT_0);
134 if (stack_size != 0) {
135 GetNativeSystemInfo(&sysinfo);
136 pagesize = (size_t)sysinfo.dwPageSize;
138 stack_size = (stack_size + pagesize - 1) &~ (pagesize - 1);
140 if ((
unsigned)stack_size != stack_size)
153 thread = (HANDLE) _beginthreadex(NULL,
154 (
unsigned)stack_size,
191 if (WaitForSingleObject(*
tid, INFINITE))
208 InitializeCriticalSection(
mutex);
219 DeleteCriticalSection(
mutex);
224 EnterCriticalSection(
mutex);
229 if (TryEnterCriticalSection(
mutex))
237 LeaveCriticalSection(
mutex);
243 HANDLE
handle = CreateSemaphoreW(NULL, 1, 1, NULL);
273 if (
r != WAIT_OBJECT_0)
295 if (
r == WAIT_OBJECT_0)
297 else if (
r == WAIT_TIMEOUT)
299 else if (
r == WAIT_FAILED)
328 if (
r != WAIT_OBJECT_0)
335 if (
r == WAIT_OBJECT_0)
337 else if (
r == WAIT_TIMEOUT)
351 *
sem = CreateSemaphore(NULL,
value, INT_MAX, NULL);
360 if (!CloseHandle(*
sem))
366 if (!ReleaseSemaphore(*
sem, 1, NULL))
372 if (WaitForSingleObject(*
sem, INFINITE) != WAIT_OBJECT_0)
378 DWORD
r = WaitForSingleObject(*
sem, 0);
380 if (
r == WAIT_OBJECT_0)
383 if (
r == WAIT_TIMEOUT)
421 if (GetLastError() != ERROR_TIMEOUT)
486 return serial_thread;
491 key->tls_index = TlsAlloc();
492 if (
key->tls_index == TLS_OUT_OF_INDEXES)
499 if (TlsFree(
key->tls_index) ==
FALSE)
501 key->tls_index = TLS_OUT_OF_INDEXES;
508 value = TlsGetValue(
key->tls_index);
510 if (GetLastError() != ERROR_SUCCESS)
void uv_sem_wait(uv_sem_t *sem)
static uv_key_t uv__current_thread_key
struct uv_rwlock_t::@396 state_
int uv_mutex_init(uv_mutex_t *mutex)
void * uv__malloc(size_t size)
void uv_rwlock_wrlock(uv_rwlock_t *rwlock)
int uv_thread_create(uv_thread_t *tid, void(*entry)(void *arg), void *arg)
int uv_cond_init(uv_cond_t *cond)
void uv_sem_post(uv_sem_t *sem)
int uv_mutex_init_recursive(uv_mutex_t *mutex)
@ UV_THREAD_HAS_STACK_SIZE
void uv_cond_broadcast(uv_cond_t *cond)
unsigned int num_readers_
void uv_mutex_destroy(uv_mutex_t *mutex)
void uv_cond_wait(uv_cond_t *cond, uv_mutex_t *mutex)
static struct test_ctx ctx
void uv_once(uv_once_t *guard, void(*callback)(void))
int uv_rwlock_trywrlock(uv_rwlock_t *rwlock)
STATIC_ASSERT(sizeof(uv_thread_t)<=sizeof(void *))
void uv_key_delete(uv_key_t *key)
static void uv__init_current_thread_key(void)
void uv_rwlock_rdlock(uv_rwlock_t *rwlock)
UV_EXTERN int uv_translate_sys_error(int sys_errno)
void uv_rwlock_rdunlock(uv_rwlock_t *rwlock)
int uv_thread_equal(const uv_thread_t *t1, const uv_thread_t *t2)
unsigned __int64 uint64_t
CONDITION_VARIABLE cond_var
int uv_barrier_init(uv_barrier_t *barrier, unsigned int count)
pthread_mutex_t uv_mutex_t
void uv_mutex_unlock(uv_mutex_t *mutex)
static void callback(void *arg, int status, int timeouts, struct hostent *host)
static uv_once_t uv__current_thread_init_guard
UV_PLATFORM_SEM_T uv_sem_t
int uv_rwlock_tryrdlock(uv_rwlock_t *rwlock)
static UINT __stdcall uv__thread_start(void *arg)
void uv_fatal_error(const int errorno, const char *syscall)
uv_thread_t uv_thread_self(void)
void uv_sem_destroy(uv_sem_t *sem)
void * uv_key_get(uv_key_t *key)
int uv_sem_trywait(uv_sem_t *sem)
int uv_mutex_trylock(uv_mutex_t *mutex)
void uv_cond_signal(uv_cond_t *cond)
int uv_thread_join(uv_thread_t *tid)
void uv_key_set(uv_key_t *key, void *value)
int uv_cond_timedwait(uv_cond_t *cond, uv_mutex_t *mutex, uint64_t timeout)
void uv_cond_destroy(uv_cond_t *cond)
static void uv__once_inner(uv_once_t *guard, void(*callback)(void))
int uv_rwlock_init(uv_rwlock_t *rwlock)
CRITICAL_SECTION num_readers_lock_
void uv_rwlock_destroy(uv_rwlock_t *rwlock)
int uv_barrier_wait(uv_barrier_t *barrier)
int uv_sem_init(uv_sem_t *sem, unsigned int value)
void uv_mutex_lock(uv_mutex_t *mutex)
void uv_barrier_destroy(uv_barrier_t *barrier)
int uv_key_create(uv_key_t *key)
static uv_rwlock_t rwlock
static uv_thread_t thread
void uv_rwlock_wrunlock(uv_rwlock_t *rwlock)
int uv_thread_create_ex(uv_thread_t *tid, const uv_thread_options_t *params, void(*entry)(void *arg), void *arg)
grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:35