iron_thread.h 805 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <iron_global.h>
  4. #include BACKEND_THREAD_H
  5. typedef struct iron_thread {
  6. iron_thread_impl_t impl;
  7. } iron_thread_t;
  8. void iron_threads_init(void);
  9. void iron_threads_quit(void);
  10. void iron_thread_init(iron_thread_t *thread, void (*func)(void *param), void *param);
  11. void iron_thread_wait_and_destroy(iron_thread_t *thread);
  12. bool iron_thread_try_to_destroy(iron_thread_t *thread);
  13. void iron_thread_set_name(const char *name);
  14. void iron_thread_sleep(int milliseconds);
  15. typedef struct iron_mutex {
  16. iron_mutex_impl_t impl;
  17. } iron_mutex_t;
  18. void iron_mutex_init(iron_mutex_t *mutex);
  19. void iron_mutex_destroy(iron_mutex_t *mutex);
  20. void iron_mutex_lock(iron_mutex_t *mutex);
  21. bool iron_mutex_try_to_lock(iron_mutex_t *mutex);
  22. void iron_mutex_unlock(iron_mutex_t *mutex);