Skip to Main Content
Intel Threading Building Blocks
book

Intel Threading Building Blocks

by James Reinders
July 2007
Intermediate to advanced content levelIntermediate to advanced
332 pages
10h 4m
English
O'Reilly Media, Inc.
Content preview from Intel Threading Building Blocks

Replacing new and delete

Example 11-50 shows a method to replace new and delete. As described in Chapter 6, all versions of new and delete must be replaced at once, which amounts to four versions of new and four versions of delete. It is necessary to link with the scalable memory library (see Chapter 6).

Please note that you do not have to initialize the task scheduler to be able to use the memory allocator. We do initialize it in this example because it uses parallel_for in order to demonstrate the use of memory allocation and deallocation in multiple tasks. Similarly, the only header file that is required for the memory allocator is tbb/scalable_allocator.h.

There are four basic signatures for new and delete: a set for individual objects, and a set for arrays of objects. If memory cannot be allocated, new calls the new handler function if set, or it throws the std::bad_alloc() exception. This example chooses to ignore any new handler because there are thread-safety issues (see the sidebar “Thread-Safety Issues in Implementing new”), and it always throws std::bad_alloc(). The variation of the basic signature includes the additional parameter const std:: nothrow_t& that means that this operator will not throw an exception but will return NULL if the allocation fails. These four non-throwing exception operators can be used for C runtime libraries. See Example 11-51 for a driver program that also demonstrates the replacement of new and delete.

Example 11-50. Replacement of new and delete ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Intel® Xeon Phi™ Coprocessor Architecture and Tools: The Guide for Application Developers

Intel® Xeon Phi™ Coprocessor Architecture and Tools: The Guide for Application Developers

Rezaur Rahman

Publisher Resources

ISBN: 9780596514808Errata Page