17 #ifndef __TBB_exception_H 18 #define __TBB_exception_H 20 #define __TBB_tbb_exception_H_include_area 34 #if __TBB_DEFAULT_DTOR_THROW_SPEC_BROKEN 87 #if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE 110 #if __TBB_TASK_GROUP_CONTEXT 142 void*
operator new ( size_t );
160 virtual void destroy()
throw() = 0;
167 virtual void throw_self() = 0;
170 virtual const char*
name()
const throw() = 0;
181 void operator delete (
void*
p ) {
209 if (
this != &src ) {
211 set(src.my_exception_name, src.my_exception_info);
246 template<
typename ExceptionData>
253 : my_exception_data(data_)
266 , my_exception_data(src.my_exception_data)
268 , my_exception_name(src.my_exception_name)
274 if (
this != &src ) {
281 ExceptionData&
data() throw() {
return my_exception_data; }
283 const ExceptionData&
data()
const throw() {
return my_exception_data; }
298 __TBB_ASSERT ( my_dynamic,
"Method destroy can be called only on dynamically allocated movable_exceptions" );
319 #if !TBB_USE_CAPTURED_EXCEPTION 345 my_ptr(std::make_exception_ptr(src))
347 my_ptr(std::copy_exception(src))
360 #undef __TBB_tbb_exception_H_include_area
void destroy()
Destroys this objects.
The last enumerator tracks the number of defined IDs. It must remain the last one.
void __TBB_EXPORTED_FUNC throw_exception_v4(exception_id)
Gathers all throw operators in one place.
tbb_exception_ptr(const captured_exception &src)
captured_exception(const char *name_, const char *info)
Exception for concurrent containers.
ExceptionData my_exception_data
User data.
movable_exception< ExceptionData > self_type
Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.
const char * what() const __TBB_override
Exception for user-initiated abort.
#define TBB_USE_EXCEPTIONS
bool my_dynamic
Flag specifying whether this object has been dynamically allocated (by the move method)
#define __TBB_DEPRECATED_IN_VERBOSE_MODE
void __TBB_EXPORTED_FUNC deallocate_via_handler_v3(void *p)
Deallocates memory using FreeHandler.
tbb_exception_ptr(const std::exception_ptr &src)
const char * what() const __TBB_override
Template that can be used to implement exception that transfers arbitrary ExceptionData to the root t...
const ExceptionData & data() const
const char * what() const __TBB_override
Returns the result of originally intercepted exception's what() method.
const char * what() const __TBB_override
void throw_self() __TBB_override
Throws this exception object.
void destroy() __TBB_override
Destroys objects created by the move() method.
#define __TBB_MAKE_EXCEPTION_PTR_PRESENT
movable_exception(const movable_exception &src)
Exception for repeated scheduling of the same task_handle.
movable_exception(const ExceptionData &data_)
const char * my_exception_name
void const char const char int ITT_FORMAT __itt_group_sync p
const char * name() const __TBB_override
Returns RTTI name of the originally intercepted exception.
#define __TBB_EXPORTED_FUNC
const char * what() const __TBB_override
const char * my_exception_name
RTTI name of this class.
This class is used by TBB to propagate information about unhandled exceptions into the root thread.
Exception for missing wait on structured_task_group.
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
static tbb_exception_ptr * allocate()
Exception container that preserves the exact copy of the original exception.
#define __TBB_EXPORTED_METHOD
captured_exception(const captured_exception &src)
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void __TBB_EXPORTED_FUNC throw_bad_last_alloc_exception_v4()
Obsolete.
const char * my_exception_info
void throw_exception(exception_id eid)
Versionless convenience wrapper for throw_exception_v4()
std::exception_ptr my_ptr
void throw_self()
Throws the contained exception .
void *__TBB_EXPORTED_FUNC allocate_via_handler_v3(size_t n)
Allocates memory using MallocHandler.
movable_exception * move() __TBB_override
Creates and returns pointer to the deep copy of this exception object.
void move(tbb_thread &t1, tbb_thread &t2)