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

Blocking Style with Children

Example 9-4 shows the recommended style for a recursive task of type T where each level spawns k children.

Example 9-4. Blocking style with children

task* T::execute() {
    if( not recursing any further ) {
        ...
    } else {
        set_ref_count(k+1);
        task& tk = new( allocate_child() ) T(...);  tk.spawn();
        task& tk-1= new( allocate_child() ) T(...); tk-1.spawn();
        ...
        task& t1 = new( allocate_child() ) T(...);  t1.spawn_and_wait(t1);
    }
    return NULL;
}

Child construction and spawning may be reordered if convenient, as long as a task is constructed before it is spawned.

The key points of the pattern are:

  • The call to set_ref_count uses k+1 as its argument. The extra 1 is critical.

  • Each task is allocated by allocate_child.

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