tbb_thread.h
Go to the documentation of this file.
/*
Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#include "internal/_deprecated_header_message_guard.h"
#if !defined(__TBB_show_deprecation_message_tbb_thread_H) && defined(__TBB_show_deprecated_header_message)
#define __TBB_show_deprecation_message_tbb_thread_H
#pragma message("TBB Warning: tbb/tbb_thread.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
#endif
#if defined(__TBB_show_deprecated_header_message)
#undef __TBB_show_deprecated_header_message
#endif
#ifndef __TBB_tbb_thread_H
#define __TBB_tbb_thread_H
#define __TBB_tbb_thread_H_include_area
#include "internal/_warning_suppress_enable_notice.h"
#include "tbb_stddef.h"
#if _WIN32||_WIN64
#include "machine/windows_api.h"
#define __TBB_NATIVE_THREAD_ROUTINE unsigned WINAPI
#define __TBB_NATIVE_THREAD_ROUTINE_PTR(r) unsigned (WINAPI* r)( void* )
namespace tbb { namespace internal {
#if __TBB_WIN8UI_SUPPORT
typedef size_t thread_id_type;
#else // __TBB_WIN8UI_SUPPORT
typedef DWORD thread_id_type;
#endif // __TBB_WIN8UI_SUPPORT
}} //namespace tbb::internal
#else
#define __TBB_NATIVE_THREAD_ROUTINE void*
#define __TBB_NATIVE_THREAD_ROUTINE_PTR(r) void* (*r)( void* )
#include <pthread.h>
namespace tbb { namespace internal {
typedef pthread_t thread_id_type;
}} //namespace tbb::internal
#endif // _WIN32||_WIN64
#include "atomic.h"
#include "internal/_tbb_hash_compare_impl.h"
#include "tick_count.h"
#include __TBB_STD_SWAP_HEADER
#include <iosfwd>
namespace tbb {
namespace internal {
class tbb_thread_v3;
}
inline void swap( internal::tbb_thread_v3& t1, internal::tbb_thread_v3& t2 ) __TBB_NOEXCEPT(true);
namespace internal {
void* __TBB_EXPORTED_FUNC allocate_closure_v3( size_t size );
void __TBB_EXPORTED_FUNC free_closure_v3( void* );
struct thread_closure_base {
void* operator new( size_t size ) {return allocate_closure_v3(size);}
void operator delete( void* ptr ) {free_closure_v3(ptr);}
};
template<class F> struct thread_closure_0: thread_closure_base {
F function;
static __TBB_NATIVE_THREAD_ROUTINE start_routine( void* c ) {
thread_closure_0 *self = static_cast<thread_closure_0*>(c);
self->function();
delete self;
return 0;
}
thread_closure_0( const F& f ) : function(f) {}
};
template<class F, class X> struct thread_closure_1: thread_closure_base {
F function;
X arg1;
static __TBB_NATIVE_THREAD_ROUTINE start_routine( void* c ) {
thread_closure_1 *self = static_cast<thread_closure_1*>(c);
self->function(self->arg1);
delete self;
return 0;
}
thread_closure_1( const F& f, const X& x ) : function(f), arg1(x) {}
};
template<class F, class X, class Y> struct thread_closure_2: thread_closure_base {
F function;
X arg1;
Y arg2;
static __TBB_NATIVE_THREAD_ROUTINE start_routine( void* c ) {
thread_closure_2 *self = static_cast<thread_closure_2*>(c);
self->function(self->arg1, self->arg2);
delete self;
return 0;
}
thread_closure_2( const F& f, const X& x, const Y& y ) : function(f), arg1(x), arg2(y) {}
};
class tbb_thread_v3 {
#if __TBB_IF_NO_COPY_CTOR_MOVE_SEMANTICS_BROKEN
// Workaround for a compiler bug: declaring the copy constructor as public
// enables use of the moving constructor.
// The definition is not provided in order to prohibit copying.
public:
#endif
tbb_thread_v3(const tbb_thread_v3&); // = delete; // Deny access
public:
#if _WIN32||_WIN64
typedef HANDLE native_handle_type;
#else
typedef pthread_t native_handle_type;
#endif // _WIN32||_WIN64
class id;
tbb_thread_v3() __TBB_NOEXCEPT(true) : my_handle(0)
#if _WIN32||_WIN64
, my_thread_id(0)
#endif // _WIN32||_WIN64
{}
template <class F> explicit tbb_thread_v3(F f) {
typedef internal::thread_closure_0<F> closure_type;
internal_start(closure_type::start_routine, new closure_type(f));
}
template <class F, class X> tbb_thread_v3(F f, X x) {
typedef internal::thread_closure_1<F,X> closure_type;
internal_start(closure_type::start_routine, new closure_type(f,x));
}
template <class F, class X, class Y> tbb_thread_v3(F f, X x, Y y) {
typedef internal::thread_closure_2<F,X,Y> closure_type;
internal_start(closure_type::start_routine, new closure_type(f,x,y));
}
#if __TBB_CPP11_RVALUE_REF_PRESENT
tbb_thread_v3(tbb_thread_v3&& x) __TBB_NOEXCEPT(true)
: my_handle(x.my_handle)
#if _WIN32||_WIN64
, my_thread_id(x.my_thread_id)
#endif
{
x.internal_wipe();
}
tbb_thread_v3& operator=(tbb_thread_v3&& x) __TBB_NOEXCEPT(true) {
internal_move(x);
return *this;
}
private:
tbb_thread_v3& operator=(const tbb_thread_v3& x); // = delete;
public:
#else // __TBB_CPP11_RVALUE_REF_PRESENT
tbb_thread_v3& operator=(tbb_thread_v3& x) {
internal_move(x);
return *this;
}
#endif // __TBB_CPP11_RVALUE_REF_PRESENT
void swap( tbb_thread_v3& t ) __TBB_NOEXCEPT(true) {tbb::swap( *this, t );}
bool joinable() const __TBB_NOEXCEPT(true) {return my_handle!=0; }
void __TBB_EXPORTED_METHOD join();
void __TBB_EXPORTED_METHOD detach();
~tbb_thread_v3() {if( joinable() ) detach();}
inline id get_id() const __TBB_NOEXCEPT(true);
native_handle_type native_handle() { return my_handle; }
static unsigned __TBB_EXPORTED_FUNC hardware_concurrency() __TBB_NOEXCEPT(true);
private:
native_handle_type my_handle;
#if _WIN32||_WIN64
thread_id_type my_thread_id;
#endif // _WIN32||_WIN64
void internal_wipe() __TBB_NOEXCEPT(true) {
my_handle = 0;
#if _WIN32||_WIN64
my_thread_id = 0;
#endif
}
void internal_move(tbb_thread_v3& x) __TBB_NOEXCEPT(true) {
if (joinable()) detach();
my_handle = x.my_handle;
#if _WIN32||_WIN64
my_thread_id = x.my_thread_id;
#endif // _WIN32||_WIN64
x.internal_wipe();
}
void __TBB_EXPORTED_METHOD internal_start( __TBB_NATIVE_THREAD_ROUTINE_PTR(start_routine),
void* closure );
friend void __TBB_EXPORTED_FUNC move_v3( tbb_thread_v3& t1, tbb_thread_v3& t2 );
friend void tbb::swap( tbb_thread_v3& t1, tbb_thread_v3& t2 ) __TBB_NOEXCEPT(true);
};
class tbb_thread_v3::id {
thread_id_type my_id;
id( thread_id_type id_ ) : my_id(id_) {}
friend class tbb_thread_v3;
public:
id() __TBB_NOEXCEPT(true) : my_id(0) {}
friend bool operator==( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true);
friend bool operator!=( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true);
friend bool operator<( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true);
friend bool operator<=( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true);
friend bool operator>( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true);
friend bool operator>=( tbb_thread_v3::id x, tbb_thread_v3::id y ) __TBB_NOEXCEPT(true);
template<class charT, class traits>
friend std::basic_ostream<charT, traits>&
operator<< (std::basic_ostream<charT, traits> &out,
tbb_thread_v3::id id)
{
out << id.my_id;
return out;
}
friend tbb_thread_v3::id __TBB_EXPORTED_FUNC thread_get_id_v3();
friend inline size_t tbb_hasher( const tbb_thread_v3::id& id ) {
__TBB_STATIC_ASSERT(sizeof(id.my_id) <= sizeof(size_t), "Implementation assumes that thread_id_type fits into machine word");
return tbb::tbb_hasher(id.my_id);
}
// A workaround for lack of tbb::atomic<id> (which would require id to be POD in C++03).
friend id atomic_compare_and_swap(id& location, const id& value, const id& comparand){
return as_atomic(location.my_id).compare_and_swap(value.my_id, comparand.my_id);
}
}; // tbb_thread_v3::id
tbb_thread_v3::id tbb_thread_v3::get_id() const __TBB_NOEXCEPT(true) {
#if _WIN32||_WIN64
return id(my_thread_id);
#else
return id(my_handle);
#endif // _WIN32||_WIN64
}
void __TBB_EXPORTED_FUNC move_v3( tbb_thread_v3& t1, tbb_thread_v3& t2 );
tbb_thread_v3::id __TBB_EXPORTED_FUNC thread_get_id_v3();
void __TBB_EXPORTED_FUNC thread_yield_v3();
void __TBB_EXPORTED_FUNC thread_sleep_v3(const tick_count::interval_t &i);
inline bool operator==(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
{
return x.my_id == y.my_id;
}
inline bool operator!=(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
{
return x.my_id != y.my_id;
}
inline bool operator<(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
{
return x.my_id < y.my_id;
}
inline bool operator<=(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
{
return x.my_id <= y.my_id;
}
inline bool operator>(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
{
return x.my_id > y.my_id;
}
inline bool operator>=(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
{
return x.my_id >= y.my_id;
}
} // namespace internal;
__TBB_DEPRECATED_VERBOSE_MSG("tbb::thread is deprecated, use std::thread") typedef internal::tbb_thread_v3 tbb_thread;
using internal::operator==;
using internal::operator!=;
using internal::operator<;
using internal::operator>;
using internal::operator<=;
using internal::operator>=;
inline void move( tbb_thread& t1, tbb_thread& t2 ) {
internal::move_v3(t1, t2);
}
inline void swap( internal::tbb_thread_v3& t1, internal::tbb_thread_v3& t2 ) __TBB_NOEXCEPT(true) {
std::swap(t1.my_handle, t2.my_handle);
#if _WIN32||_WIN64
std::swap(t1.my_thread_id, t2.my_thread_id);
#endif /* _WIN32||_WIN64 */
}
namespace this_tbb_thread {
__TBB_DEPRECATED_VERBOSE inline tbb_thread::id get_id() { return internal::thread_get_id_v3(); }
__TBB_DEPRECATED_VERBOSE inline void yield() { internal::thread_yield_v3(); }
__TBB_DEPRECATED_VERBOSE inline void sleep(const tick_count::interval_t &i) {
internal::thread_sleep_v3(i);
}
} // namespace this_tbb_thread
} // namespace tbb
#include "internal/_warning_suppress_disable_notice.h"
#undef __TBB_tbb_thread_H_include_area
#endif /* __TBB_tbb_thread_H */
tbb::internal::thread_closure_1::function
F function
Definition: tbb_thread.h:96
tbb::__TBB_DEPRECATED_VERBOSE_MSG
class __TBB_DEPRECATED_VERBOSE_MSG("tbb::aligned_space is deprecated, use std::aligned_storage") aligned_space
Block of space aligned sufficiently to construct an array T with N elements.
Definition: aligned_space.h:43
tbb::internal::tbb_thread_v3::tbb_thread_v3
tbb_thread_v3(F f, X x, Y y)
Constructs an object and executes f(x,y) in a new thread.
Definition: tbb_thread.h:156
tbb::internal::tbb_thread_v3::internal_start
void __TBB_EXPORTED_METHOD internal_start(__TBB_NATIVE_THREAD_ROUTINE_PTR(start_routine), void *closure)
Definition: tbb_thread.cpp:90
tbb::internal::tbb_thread_v3::internal_move
void internal_move(tbb_thread_v3 &x) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:217
tbb::internal::tbb_thread_v3::tbb_thread_v3
tbb_thread_v3() __TBB_NOEXCEPT(true)
Constructs a thread object that does not represent a thread of execution.
Definition: tbb_thread.h:139
tbb::internal::tbb_thread_v3::id::thread_get_id_v3
friend tbb_thread_v3::id __TBB_EXPORTED_FUNC thread_get_id_v3()
Definition: tbb_thread.cpp:139
_deprecated_header_message_guard.h
tbb::internal::thread_sleep_v3
void __TBB_EXPORTED_FUNC thread_sleep_v3(const tick_count::interval_t &i)
Definition: tbb_thread.cpp:164
tbb::internal::tbb_thread_v3::detach
void __TBB_EXPORTED_METHOD detach()
When detach() returns, *this no longer represents the possibly continuing thread of execution.
Definition: tbb_thread.cpp:74
internal
Definition: _flow_graph_async_msg_impl.h:24
tbb::internal::thread_id_type
pthread_t thread_id_type
Definition: tbb_thread.h:52
tbb::internal::thread_closure_0::thread_closure_0
thread_closure_0(const F &f)
Definition: tbb_thread.h:92
tbb::internal::allocate_closure_v3
void *__TBB_EXPORTED_FUNC allocate_closure_v3(size_t size)
Allocate a closure.
Definition: tbb_thread.cpp:35
tbb::tick_count::interval_t
Relative time interval.
Definition: tick_count.h:37
id
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id id
Definition: ittnotify_static.h:172
tbb::internal::tbb_thread_v3
Versioned thread class.
Definition: tbb_thread.h:122
tbb::internal::thread_closure_0
Definition: tbb_thread.h:83
tbb::internal::tbb_thread_v3::move_v3
friend void __TBB_EXPORTED_FUNC move_v3(tbb_thread_v3 &t1, tbb_thread_v3 &t2)
Definition: tbb_thread.cpp:147
tbb::internal::thread_closure_2::function
F function
Definition: tbb_thread.h:108
tbb
The graph class.
Definition: serial/tbb/parallel_for.h:46
tbb::internal::tbb_thread_v3::swap
void swap(tbb_thread_v3 &t) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:184
tbb::internal::operator<
bool operator<(const vector_iterator< Container, T > &i, const vector_iterator< Container, U > &j)
Definition: concurrent_vector.h:452
tbb::internal::tbb_thread_v3::id::operator>
friend bool operator>(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:298
tbb::internal::free_closure_v3
void __TBB_EXPORTED_FUNC free_closure_v3(void *)
Free a closure allocated by allocate_closure_v3.
Definition: tbb_thread.cpp:41
tbb::internal::tbb_thread_v3::id::id
id(thread_id_type id_)
Definition: tbb_thread.h:235
windows_api.h
tbb::internal::thread_closure_1::arg1
X arg1
Definition: tbb_thread.h:97
tbb::internal::thread_closure_2::start_routine
static __TBB_NATIVE_THREAD_ROUTINE start_routine(void *c)
Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb....
Definition: tbb_thread.h:112
size
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t size
Definition: ittnotify_static.h:109
tbb::internal::thread_closure_2::thread_closure_2
thread_closure_2(const F &f, const X &x, const Y &y)
Definition: tbb_thread.h:118
tbb::this_tbb_thread::get_id
__TBB_DEPRECATED_VERBOSE tbb_thread::id get_id()
Definition: tbb_thread.h:331
tbb::internal::tbb_thread_v3::my_handle
native_handle_type my_handle
Definition: tbb_thread.h:206
tbb::internal::operator==
bool operator==(const vector_iterator< Container, T > &i, const vector_iterator< Container, U > &j)
Definition: concurrent_vector.h:442
tbb::internal::tbb_thread_v3::internal_wipe
void internal_wipe() __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:211
tbb::internal::tbb_thread_v3::operator=
tbb_thread_v3 & operator=(tbb_thread_v3 &&x) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:170
tbb::internal::operator>=
bool operator>=(const vector_iterator< Container, T > &i, const vector_iterator< Container, U > &j)
Definition: concurrent_vector.h:462
_tbb_hash_compare_impl.h
tbb::internal::thread_closure_0::start_routine
static __TBB_NATIVE_THREAD_ROUTINE start_routine(void *c)
Definition: tbb_thread.h:86
private
#define private
Definition: scheduler_common.h:35
tbb::internal::thread_closure_0::function
F function
Definition: tbb_thread.h:84
tbb::internal::tbb_thread_v3::hardware_concurrency
static unsigned __TBB_EXPORTED_FUNC hardware_concurrency() __TBB_NOEXCEPT(true)
The number of hardware thread contexts.
Definition: tbb_thread.cpp:135
tbb::internal::tbb_thread_v3::id::my_id
thread_id_type my_id
Definition: tbb_thread.h:234
tbb::internal::tbb_thread_v3::get_id
id get_id() const __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:269
tbb::this_tbb_thread::yield
__TBB_DEPRECATED_VERBOSE void yield()
Offers the operating system the opportunity to schedule another thread.
Definition: tbb_thread.h:333
tbb::internal::thread_closure_1::start_routine
static __TBB_NATIVE_THREAD_ROUTINE start_routine(void *c)
Routine passed to Windows's _beginthreadex by thread::internal_start() inside tbb....
Definition: tbb_thread.h:99
tbb::internal::operator!=
bool operator!=(const vector_iterator< Container, T > &i, const vector_iterator< Container, U > &j)
Definition: concurrent_vector.h:447
tbb::internal::thread_closure_2
Definition: tbb_thread.h:107
tbb::internal::tbb_thread_v3::id::tbb_hasher
friend size_t tbb_hasher(const tbb_thread_v3::id &id)
Definition: tbb_thread.h:258
tbb::internal::tbb_thread_v3::id::operator<<
friend std::basic_ostream< charT, traits > & operator<<(std::basic_ostream< charT, traits > &out, tbb_thread_v3::id id)
Definition: tbb_thread.h:250
__TBB_STATIC_ASSERT
#define __TBB_STATIC_ASSERT(condition, msg)
Definition: tbb_stddef.h:553
tbb::internal::tbb_thread_v3::join
void __TBB_EXPORTED_METHOD join()
The completion of the thread represented by *this happens before join() returns.
Definition: tbb_thread.cpp:46
tbb::move
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:319
tbb::internal::tbb_thread_v3::id::operator<
friend bool operator<(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:290
tbb::internal::tbb_thread_v3::joinable
bool joinable() const __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:185
tbb::internal::tbb_thread_v3::id
Definition: tbb_thread.h:233
tbb::internal::thread_closure_1
Structure used to pass user function with 1 argument to thread.
Definition: tbb_thread.h:95
tbb::internal::tbb_thread_v3::native_handle
native_handle_type native_handle()
Definition: tbb_thread.h:192
atomic.h
__TBB_NATIVE_THREAD_ROUTINE
#define __TBB_NATIVE_THREAD_ROUTINE
Definition: tbb_thread.h:48
tbb::internal::tbb_thread_v3::tbb_thread_v3
tbb_thread_v3(F f, X x)
Constructs an object and executes f(x) in a new thread.
Definition: tbb_thread.h:151
tbb::internal::thread_closure_2::arg1
X arg1
Definition: tbb_thread.h:109
tbb::internal::thread_yield_v3
void __TBB_EXPORTED_FUNC thread_yield_v3()
Definition: tbb_thread.cpp:159
tbb::internal::thread_closure_base
Definition: tbb_thread.h:78
tbb::internal::thread_closure_1::thread_closure_1
thread_closure_1(const F &f, const X &x)
Definition: tbb_thread.h:105
_warning_suppress_disable_notice.h
tbb::internal::tbb_thread_v3::id::atomic_compare_and_swap
friend id atomic_compare_and_swap(id &location, const id &value, const id &comparand)
Definition: tbb_thread.h:264
tbb::swap
void swap(internal::tbb_thread_v3 &t1, internal::tbb_thread_v3 &t2) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:323
__TBB_EXPORTED_FUNC
#define __TBB_EXPORTED_FUNC
Definition: scalable_allocator.h:38
tbb::internal::thread_closure_2::arg2
Y arg2
Definition: tbb_thread.h:110
tbb::internal::tbb_thread_v3::id::operator<=
friend bool operator<=(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:294
tbb::internal::thread_get_id_v3
tbb_thread_v3::id __TBB_EXPORTED_FUNC thread_get_id_v3()
Definition: tbb_thread.cpp:139
tick_count.h
tbb::internal::tbb_thread_v3::id::operator==
friend bool operator==(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:282
tbb::internal::operator<=
bool operator<=(const vector_iterator< Container, T > &i, const vector_iterator< Container, U > &j)
Definition: concurrent_vector.h:467
tbb::internal::as_atomic
atomic< T > & as_atomic(T &t)
Definition: atomic.h:572
__TBB_NOEXCEPT
#define __TBB_NOEXCEPT(expression)
Definition: tbb_stddef.h:110
__TBB_DEPRECATED_VERBOSE
#define __TBB_DEPRECATED_VERBOSE
Definition: tbb_config.h:648
tbb::internal::tbb_thread_v3::id::operator>=
friend bool operator>=(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:302
value
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long value
Definition: ittnotify_static.h:192
tbb_stddef.h
tbb::internal::tbb_thread_v3::id::id
id() __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:239
tbb::internal::tbb_thread_v3::tbb_thread_v3
tbb_thread_v3(tbb_thread_v3 &&x) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:162
_warning_suppress_enable_notice.h
__TBB_EXPORTED_METHOD
#define __TBB_EXPORTED_METHOD
Definition: tbb_stddef.h:98
tbb::this_tbb_thread::sleep
__TBB_DEPRECATED_VERBOSE void sleep(const tick_count::interval_t &i)
The current thread blocks at least until the time specified.
Definition: tbb_thread.h:335
tbb::internal::tbb_thread_v3::id::operator!=
friend bool operator!=(tbb_thread_v3::id x, tbb_thread_v3::id y) __TBB_NOEXCEPT(true)
Definition: tbb_thread.h:286
tbb::swap
void swap(concurrent_hash_map< Key, T, HashCompare, A > &a, concurrent_hash_map< Key, T, HashCompare, A > &b)
Definition: concurrent_hash_map.h:1638
tbb::internal::move_v3
void __TBB_EXPORTED_FUNC move_v3(tbb_thread_v3 &t1, tbb_thread_v3 &t2)
Definition: tbb_thread.cpp:147
__TBB_NATIVE_THREAD_ROUTINE_PTR
#define __TBB_NATIVE_THREAD_ROUTINE_PTR(r)
Definition: tbb_thread.h:49
tbb::internal::operator>
bool operator>(const vector_iterator< Container, T > &i, const vector_iterator< Container, U > &j)
Definition: concurrent_vector.h:457
tbb::internal::tbb_thread_v3::~tbb_thread_v3
~tbb_thread_v3()
Definition: tbb_thread.h:190
tbb::internal::tbb_thread_v3::native_handle_type
pthread_t native_handle_type
Definition: tbb_thread.h:134
tbb::internal::tbb_thread_v3::tbb_thread_v3
tbb_thread_v3(F f)
Constructs an object and executes f() in a new thread.
Definition: tbb_thread.h:146

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.