#ifndef __FISHBONE_THREAD_H__ #define __FISHBONE_THREAD_H__ namespace fishbone { class Thread; class Mutex; }; // namespace fishbone #include namespace fishbone { class Thread { struct Impl; Impl* impl; public: Thread(void (*call)(fishbone::Thread* thread, void* arg), void* arg); ~Thread(); void join(); }; class Mutex { struct Impl; Impl* impl; public: Mutex(); ~Mutex(); void lock(); void unlock(); }; }; // namespace fishbone #endif