44 lines
749 B
C++
44 lines
749 B
C++
#ifndef __FISHBONE_THREAD_H__
|
|
#define __FISHBONE_THREAD_H__
|
|
|
|
namespace fishbone {
|
|
class Thread;
|
|
class Mutex;
|
|
}; // namespace fishbone
|
|
|
|
#include <fishbone/machdep.h>
|
|
|
|
#ifdef _FISHBONE
|
|
#if defined(FISHBONE_THREAD_USE_SDL2)
|
|
typedef SDL_mutex* FISHBONE_MUTEX_HANDLE;
|
|
typedef SDL_Thread* FISHBONE_THREAD_HANDLE;
|
|
#endif
|
|
#else
|
|
typedef void* FISHBONE_MUTEX_HANDLE;
|
|
typedef void* FISHBONE_THREAD_HANDLE;
|
|
#endif
|
|
|
|
namespace fishbone {
|
|
class Thread {
|
|
FISHBONE_THREAD_HANDLE thread;
|
|
|
|
public:
|
|
Thread(void (*call)(fishbone::Thread* thread, void* arg), void* arg);
|
|
~Thread();
|
|
|
|
void join();
|
|
};
|
|
|
|
class Mutex {
|
|
FISHBONE_MUTEX_HANDLE mutex;
|
|
|
|
public:
|
|
Mutex();
|
|
~Mutex();
|
|
|
|
void lock();
|
|
void unlock();
|
|
};
|
|
}; // namespace fishbone
|
|
|
|
#endif
|