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

using spin_mutex

Vijay_O_
Beginner
491 Views
I have a problem using spin_mutex. When running my application in debug mode I get the error message Entry Point Not Found The procedure point ?internal_construct@spin_mutex@tbb@@QAEXXZ could not be located in the dynamic link library tbb_debug.dll.

I am not sure but I think does this means I have to define the spin_mutex class or am I not using the class correctly. If I have to define the spin_mutex class what class method and object properties should I also define.

I would appreciate any help on this subject

thank you in advance


0 Kudos
5 Replies
Bartlomiej
New Contributor I
491 Views
Certainly, you don't have to define the class spin_mutex, only one object of this class.
It is difficult to reproduce the problem from such a brief description; a piece of source code would be helpful, probably...
Regards
0 Kudos
Vijay_O_
Beginner
491 Views

the code

tbb::spin_mutex m;

m.lock();

m_objDB.GetApertureTable()->CheckAndSetUndefined(&m_objDB,

true);

true);

m.unlock();

Based on the the description of the problem I think the the mutex class are not defined in the tbb_debug.dll that I am using. If this is true that where would I find the definition for this class

I am using visual c++ 2008 and the point of this code is to allow one threaded task to access apiece of critical code one at a time. IfIam trying to createa tbb::spin_mutexobject to lock this code is to lock code in a method. is the problem in the code or in the project setting?

Thank you again

0 Kudos
Alexey-Kukanov
Employee
491 Views

My guess is that something is messed in your project setup, such as e.g. 32- vs. 64-bit TBB DLLs. Definitely the reported symbol should exist in the 32-bit DLL; I checked our DEF files and it's there. Needless to say that the library is tested extensively in a variety of configuration, and if the symbol was really missed we would see it in tests.

0 Kudos
Vijay_O_
Beginner
491 Views
If this is the case what should I look for in the project setting?

Thank you in advance for the answer
0 Kudos
Alexey-Kukanov
Employee
491 Views
I'd recommend you to read the TBB Tutorial for the information on VC project setup.

One particular way and convenient way is to use TBB integration plug-infor MSVS that you find in http://threadingbuildingblocks.org > Downloads > Extras. It has some usage limitations though; in particular, there are known issues with localized versions of VS. The latest available version does not support TBB 3.0; if necessary you can add a 3.0 configuration as described in the README for the plug-in, or wait for an update (to be released soon).
0 Kudos
Reply