diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-24 16:53:38 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2024-01-24 16:53:38 +0300 |
commit | 26e36b3a9d7b49d46ecfa69b447482251acba8ac (patch) | |
tree | 5436b7857fae9aee50d018ea0eef35a529fc03e4 /odb/details/thread.hxx | |
parent | 0074faad1b27f3cd52a606c438e4f1375956d731 (diff) |
Turn libodb repository into package for muti-package repositorylibodb
Diffstat (limited to 'odb/details/thread.hxx')
-rw-r--r-- | odb/details/thread.hxx | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/odb/details/thread.hxx b/odb/details/thread.hxx deleted file mode 100644 index 9095f68..0000000 --- a/odb/details/thread.hxx +++ /dev/null @@ -1,65 +0,0 @@ -// file : odb/details/thread.hxx -// license : GNU GPL v2; see accompanying LICENSE file - -#ifndef ODB_DETAILS_THREAD_HXX -#define ODB_DETAILS_THREAD_HXX - -#include <odb/pre.hxx> - -#include <odb/details/config.hxx> -#include <odb/details/export.hxx> - -#ifdef ODB_THREADS_NONE -# error no thread support available -#elif defined(ODB_THREADS_CXX11) -# include <thread> -# include <future> -# include <utility> // move() - -namespace odb -{ - namespace details - { - class LIBODB_EXPORT thread - { - public: - thread (void* (*thread_func) (void*), void* arg = 0) - { - std::promise<void*> p; - f_ = p.get_future (); - t_ = std::thread (thunk, thread_func, arg, std::move (p)); - } - - void* - join () - { - f_.wait (); - t_.join (); - return f_.get (); - } - - thread (const thread&) = delete; - thread& operator= (const thread&) = delete; - - private: - static void - thunk (void* (*) (void*), void*, std::promise<void*>); - - private: - std::thread t_; - std::future<void*> f_; - }; - } -} - -#elif defined(ODB_THREADS_POSIX) -#include <odb/details/posix/thread.hxx> -#elif defined(ODB_THREADS_WIN32) -#include <odb/details/win32/thread.hxx> -#else -# error unknown threading model -#endif - -#include <odb/post.hxx> - -#endif // ODB_DETAILS_THREAD_HXX |