Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.

When is it the wrong time to spawn()?


I'm attempting to implement of a variation the technique described in the O'Reilly book on page 233-236 ("Two Mouths:  Feeding two from the same task in a pipeline").

In the example given, the dummy task is eventually spawn()-ed by a task (or more importantly, thread) other than the one that created it.

Reading the O'Reilly book, it states as a requirement for spawn():  (p163)

The calling thread must own this and child.

Two things:

  1. I have no idea what "own" means in this context -- especially in light of how spawn() is used in the above example.
  2. Looking at the TBB source code, I'm thinking this restriction is now obsolete but it's hard to tell for sure.

Please advise...

0 Kudos
1 Reply
Black Belt
From the Reference Manual (Rev. 1.29, as downloaded earlier this year in PDF format, which I prefer but do no longer see on the website?): "The ownership attribute and restrictions in Intel® TBB 2.1 no longer exist.", which you should find reassuring. This footnote is not currently visible in the online HTML format.
0 Kudos