36 #include <visp3/core/vpConfig.h>
37 #include <visp3/core/vpException.h>
39 #if defined(VISP_BUILD_DEPRECATED_FUNCTIONS) && (defined(VISP_HAVE_PTHREAD) || (defined(_WIN32) && !defined(WINRT_8_0)))
41 #if defined(VISP_HAVE_PTHREAD)
66 #if defined(VISP_HAVE_PTHREAD)
74 typedef LPTHREAD_START_ROUTINE Fn;
82 vpThread() : m_handle(), m_isCreated(false), m_isJoinable(false) { }
104 #if defined(VISP_HAVE_PTHREAD)
105 int err = pthread_create(&m_handle,
nullptr, fn, args);
109 #elif defined(_WIN32)
110 DWORD dwThreadIdArray;
111 m_handle = CreateThread(
nullptr,
128 #if defined(VISP_HAVE_PTHREAD)
129 #elif defined(_WIN32)
130 CloseHandle(m_handle);
147 #if defined(VISP_HAVE_PTHREAD)
148 pthread_join(m_handle,
nullptr);
149 #elif defined(_WIN32)
150 #if defined(WINRT_8_1)
151 WaitForSingleObjectEx(m_handle, INFINITE, FALSE);
153 WaitForSingleObject(m_handle, INFINITE);
156 m_isJoinable =
false;
error that can be emitted by ViSP classes.
@ cannotUseConstructorError
constructor error
vpThread(vpThread::Fn fn, vpThread::Args args=nullptr)
bool m_isCreated
Indicates if the thread is created.
Handle m_handle
Thread handle.
void create(vpThread::Fn fn, vpThread::Args args=nullptr)
bool m_isJoinable
Indicates if the thread is joinable.