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 360 #undef __TBB_tbb_exception_H_include_area
captured_exception(const char *name_, const char *info)
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.
void throw_self()
Throws the contained exception .
const char * what() const __TBB_override
captured_exception(const captured_exception &src)
movable_exception< ExceptionData > self_type
void destroy()
Destroys this objects.
This class is used by TBB to propagate information about unhandled exceptions into the root thread...
tbb_exception_ptr(const std::exception_ptr &src)
Exception for missing wait on structured_task_group.
bool my_dynamic
Flag specifying whether this object has been dynamically allocated (by the move method) ...
#define TBB_USE_EXCEPTIONS
#define __TBB_DEPRECATED_IN_VERBOSE_MODE
void __TBB_EXPORTED_FUNC deallocate_via_handler_v3(void *p)
Deallocates memory using FreeHandler.
Exception container that preserves the exact copy of the original exception.
tbb_exception_ptr(const captured_exception &src)
Exception for concurrent containers.
const char * my_exception_name
#define __TBB_MAKE_EXCEPTION_PTR_PRESENT
const char * what() const __TBB_override
Interface to be implemented by all exceptions TBB recognizes and propagates across the threads...
movable_exception(const movable_exception &src)
Exception for user-initiated abort.
void const char const char int ITT_FORMAT __itt_group_sync p
#define __TBB_EXPORTED_FUNC
movable_exception(const ExceptionData &data_)
const char * what() const __TBB_override
Returns the result of originally intercepted exception's what() method.
void throw_self() __TBB_override
Throws this exception object.
Template that can be used to implement exception that transfers arbitrary ExceptionData to the root t...
Exception for repeated scheduling of the same task_handle.
const char * what() const __TBB_override
const char * what() const __TBB_override
movable_exception * move() __TBB_override
Creates and returns pointer to the deep copy of this exception object.
const ExceptionData & data() const
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
void destroy() __TBB_override
Destroys objects created by the move() method.
ExceptionData my_exception_data
User data.
#define __TBB_EXPORTED_METHOD
static tbb_exception_ptr * allocate()
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
void __TBB_EXPORTED_FUNC throw_bad_last_alloc_exception_v4()
Obsolete.
void throw_exception(exception_id eid)
Versionless convenience wrapper for throw_exception_v4()
std::exception_ptr my_ptr
const char * name() const __TBB_override
Returns RTTI name of the originally intercepted exception.
const char * my_exception_name
RTTI name of this class.
const char * my_exception_info
void *__TBB_EXPORTED_FUNC allocate_via_handler_v3(size_t n)
Allocates memory using MallocHandler.
void move(tbb_thread &t1, tbb_thread &t2)