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