Files
armorpaint/base/sources/iron_thread.h
T
luboslenco 47bc985b42 Cleanup
2025-02-26 08:47:09 +01:00

39 lines
1.2 KiB
C

#pragma once
#include <stdbool.h>
#include <iron_global.h>
#include <kinc/backend/thread.h>
#include <kinc/backend/mutex.h>
#include <kinc/backend/atomic.h>
typedef struct kinc_thread {
kinc_thread_impl_t impl;
} kinc_thread_t;
void kinc_threads_init(void);
void kinc_threads_quit(void);
void kinc_thread_init(kinc_thread_t *thread, void (*func)(void *param), void *param);
void kinc_thread_wait_and_destroy(kinc_thread_t *thread);
bool kinc_thread_try_to_destroy(kinc_thread_t *thread);
void kinc_thread_set_name(const char *name);
void kinc_thread_sleep(int milliseconds);
typedef struct kinc_mutex {
kinc_mutex_impl_t impl;
} kinc_mutex_t;
void kinc_mutex_init(kinc_mutex_t *mutex);
void kinc_mutex_destroy(kinc_mutex_t *mutex);
void kinc_mutex_lock(kinc_mutex_t *mutex);
bool kinc_mutex_try_to_lock(kinc_mutex_t *mutex);
void kinc_mutex_unlock(kinc_mutex_t *mutex);
typedef struct kinc_uber_mutex {
kinc_uber_mutex_impl_t impl;
} kinc_uber_mutex_t;
bool kinc_uber_mutex_init(kinc_uber_mutex_t *mutex, const char *name);
void kinc_uber_mutex_destroy(kinc_uber_mutex_t *mutex);
void kinc_uber_mutex_lock(kinc_uber_mutex_t *mutex);
void kinc_uber_mutex_unlock(kinc_uber_mutex_t *mutex);