typedef pthread_t native_handle_type;
#endif
+ inline
+ thread() :
+ _native_handle(0)
+ {
+ }
+
+ inline
+ thread(thread &other) :
+ _native_handle(other._native_handle)
+ {
+ }
+
template< class Function, class Arg >
explicit thread( Function& f, Arg arg ) {
#ifdef _WIN32
DWORD id = 0;
_native_handle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)f, (LPVOID)arg, 0, &id);
#else
- pthread_create(&_native_handle, NULL, f, arg);
+ pthread_create(&_native_handle, NULL, ( void *(*) (void *))f, arg);
#endif
}
+ inline bool
+ joinable(void) const {
+ return _native_handle != 0;
+ }
+
inline void
join() {
#ifdef _WIN32