21 #ifndef __TBB_exception_H 22 #define __TBB_exception_H 35 #if __TBB_DEFAULT_DTOR_THROW_SPEC_BROKEN 88 #if __TBB_SUPPORTS_WORKERS_WAITING_IN_TERMINATE 111 #if __TBB_TASK_GROUP_CONTEXT 143 void*
operator new ( size_t );
161 virtual void destroy()
throw() = 0;
171 virtual const char*
name()
const throw() = 0;
182 void operator delete (
void*
p ) {
210 if (
this != &src ) {
212 set(src.my_exception_name, src.my_exception_info);
247 template<
typename ExceptionData>
275 if (
this != &src ) {
299 __TBB_ASSERT (
my_dynamic,
"Method destroy can be called only on dynamically allocated movable_exceptions" );
320 #if !TBB_USE_CAPTURED_EXCEPTION 346 my_ptr(std::make_exception_ptr(src))
348 my_ptr(std::copy_exception(src))
void throw_self()
Throws the contained exception .
void *__TBB_EXPORTED_FUNC allocate_via_handler_v3(size_t n)
Allocates memory using MallocHandler.
#define __TBB_EXPORTED_FUNC
void __TBB_EXPORTED_METHOD destroy() __TBB_override
Destroys objects created by the move() method.
const char *__TBB_EXPORTED_METHOD name() const __TBB_override
Returns RTTI name of the originally intercepted exception.
void throw_self() __TBB_override
Throws this exception object.
This class is used by TBB to propagate information about unhandled exceptions into the root thread.
virtual tbb_exception * move()=0
Creates and returns pointer to the deep copy of this exception object.
Exception for missing wait on structured_task_group.
Exception for concurrent containers.
virtual const char * name() const =0
Returns RTTI name of the originally intercepted exception.
captured_exception *__TBB_EXPORTED_METHOD move() __TBB_override
Creates and returns pointer to the deep copy of this exception object.
#define __TBB_EXPORTED_METHOD
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void const char const char int ITT_FORMAT __itt_group_sync p
Exception container that preserves the exact copy of the original exception.
movable_exception(const movable_exception &src)
const char * what() const __TBB_override
Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.
const char * my_exception_name
RTTI name of this class.
bool my_dynamic
Flag specifying whether this object has been dynamically allocated (by the move method)
Exception for user-initiated abort.
The last enumerator tracks the number of defined IDs. It must remain the last one.
movable_exception< ExceptionData > self_type
const movable_exception & operator=(const movable_exception &src)
Template that can be used to implement exception that transfers arbitrary ExceptionData to the root t...
const char * what() const __TBB_override
void __TBB_EXPORTED_FUNC deallocate_via_handler_v3(void *p)
Deallocates memory using FreeHandler.
const char * my_exception_info
movable_exception * move() __TBB_override
Creates and returns pointer to the deep copy of this exception object.
void destroy()
Destroys this objects.
void __TBB_EXPORTED_METHOD clear()
void destroy() __TBB_override
Destroys objects created by the move() method.
#define TBB_USE_EXCEPTIONS
void __TBB_EXPORTED_FUNC throw_exception_v4(exception_id)
Gathers all throw operators in one place.
std::exception_ptr my_ptr
const char * what() const __TBB_override
const char * my_exception_name
static tbb_exception_ptr * allocate()
ExceptionData my_exception_data
User data.
static captured_exception * allocate(const char *name, const char *info)
Functionally equivalent to {captured_exception e(name,info); return e.move();}.
void __TBB_EXPORTED_METHOD set(const char *name, const char *info)
tbb_exception_ptr(const captured_exception &src)
captured_exception(const captured_exception &src)
const char * what() const __TBB_override
captured_exception(const char *name_, const char *info)
__TBB_EXPORTED_METHOD ~captured_exception()
virtual void destroy()=0
Destroys objects created by the move() method.
virtual void throw_self()=0
Throws this exception object.
const char * what() const __TBB_override
Returns the result of originally intercepted exception's what() method.
const char *__TBB_EXPORTED_METHOD what() const __TBB_override
Returns the result of originally intercepted exception's what() method.
#define __TBB_MAKE_EXCEPTION_PTR_PRESENT
tbb_exception_ptr(const std::exception_ptr &src)
void throw_self() __TBB_override
Throws this exception object.
const char * what() const __TBB_override
const ExceptionData & data() const
Exception for repeated scheduling of the same task_handle.
virtual const char * what() const __TBB_override=0
Returns the result of originally intercepted exception's what() method.
movable_exception(const ExceptionData &data_)
void throw_exception(exception_id eid)
Versionless convenience wrapper for throw_exception_v4()
const char * name() const __TBB_override
Returns RTTI name of the originally intercepted exception.
void __TBB_EXPORTED_FUNC throw_bad_last_alloc_exception_v4()
Obsolete.