X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Fos_thread.hpp;h=9d6a9891524564803d844bfe923de13dfd8442c0;hb=23354536051650b7a8a713e824946d48a7734534;hp=e5eb19d3604c8dd61c47e5ccd22c4b57f1f72e28;hpb=e86f5a2f9b1e57ee2535a285f6385878c78cf0ea;p=apitrace diff --git a/common/os_thread.hpp b/common/os_thread.hpp index e5eb19d..9d6a989 100644 --- a/common/os_thread.hpp +++ b/common/os_thread.hpp @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2011 Jose Fonseca + * Copyright 2011-2012 Jose Fonseca * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy @@ -299,6 +299,39 @@ namespace os { }; + /** + * Same interface as std::thread + */ + class thread { + public: +#ifdef _WIN32 + /* FIXME */ +#else + typedef pthread_t native_handle_type; +#endif + + template< class Function, class Arg > + explicit thread( Function& f, Arg & arg ) { +#ifdef _WIN32 + /* FIXME */ +#else + pthread_create(&_native_handle, NULL, f, arg); +#endif + } + + inline void + join() { +#ifdef _WIN32 + /* FIXME */ +#else + pthread_join(_native_handle, NULL); +#endif + } + + private: + native_handle_type _native_handle; + }; + } /* namespace os */ #endif /* _OS_THREAD_HPP_ */