Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Go to the documentation of this file.
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
movable_exception(const ExceptionData &data_)
const char * my_exception_info
Interface to be implemented by all exceptions TBB recognizes and propagates across the threads.
void __TBB_EXPORTED_FUNC deallocate_via_handler_v3(void *p)
Deallocates memory using FreeHandler.
bool my_dynamic
Flag specifying whether this object has been dynamically allocated (by the move method)
@ eid_condvar_wait_failed
Exception for concurrent containers.
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
const char * what() const __TBB_override
movable_exception(const movable_exception &src)
Template that can be used to implement exception that transfers arbitrary ExceptionData to the root t...
@ eid_operation_not_permitted
const char * what() const __TBB_override
Returns the result of originally intercepted exception's what() method.
Exception for repeated scheduling of the same task_handle.
captured_exception *__TBB_EXPORTED_METHOD move() __TBB_override
Creates and returns pointer to the deep copy of this exception object.
void throw_exception(exception_id eid)
Versionless convenience wrapper for throw_exception_v4()
@ eid_segment_range_error
#define __TBB_MAKE_EXCEPTION_PTR_PRESENT
const char * what() const __TBB_override
static tbb_exception_ptr * allocate(const tbb_exception &tag)
void __TBB_EXPORTED_FUNC throw_exception_v4(exception_id)
Gathers all throw operators in one place.
Exception for user-initiated abort.
virtual tbb_exception * move()=0
Creates and returns pointer to the deep copy of this exception object.
__TBB_EXPORTED_METHOD ~captured_exception()
movable_exception * move() __TBB_override
Creates and returns pointer to the deep copy of this exception object.
const char * my_exception_name
void __TBB_EXPORTED_FUNC throw_bad_last_alloc_exception_v4()
Obsolete.
const char * name() const __TBB_override
Returns RTTI name of the originally intercepted exception.
tbb_exception_ptr(const captured_exception &src)
static tbb_exception_ptr * allocate(captured_exception &src)
This overload uses move semantics (i.e. it empties src)
#define TBB_USE_EXCEPTIONS
tbb_exception_ptr(const std::exception_ptr &src)
const char *__TBB_EXPORTED_METHOD name() const __TBB_override
Returns RTTI name of the originally intercepted exception.
@ eid_bad_tagged_msg_cast
const char * what() const __TBB_override
static tbb_exception_ptr * allocate()
captured_exception(const captured_exception &src)
void destroy()
Destroys this objects.
void throw_self()
Throws the contained exception .
Exception container that preserves the exact copy of the original exception.
void destroy() __TBB_override
Destroys objects created by the move() method.
const ExceptionData & data() const
void *__TBB_EXPORTED_FUNC allocate_via_handler_v3(size_t n)
Allocates memory using MallocHandler.
#define __TBB_EXPORTED_FUNC
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.
@ eid_max
The last enumerator tracks the number of defined IDs. It must remain the last one.
@ eid_invalid_multiple_scheduling
@ eid_reservation_length_error
std::exception_ptr my_ptr
ExceptionData my_exception_data
User data.
@ eid_invalid_load_factor
void const char const char int ITT_FORMAT __itt_group_sync x void const char * name
void throw_self() __TBB_override
Throws this exception object.
#define __TBB_DEPRECATED_IN_VERBOSE_MODE
captured_exception(const char *name_, const char *info)
void const char const char int ITT_FORMAT __itt_group_sync p
#define __TBB_EXPORTED_METHOD
static captured_exception * allocate(const char *name, const char *info)
Functionally equivalent to {captured_exception e(name,info); return e.move();}.
movable_exception< ExceptionData > self_type
const char * what() const __TBB_override
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.