Anycorn
Anycorn

Reputation: 51505

C++ boost thread id and Singleton

Sorry to flood so many questions this week.

I assume thread index returned by thread.get_id is implementation specific. In case of the pthreads, is index reused? IE, if thread 0 runs and joins, is thread launched afterwords going to have a different ID?

the reason I ask this is a need to implement Singleton pattern with a twist: each thread gets its own instance. I know it sounds very crazy, but threads control hardware (cuda) which does not permit device memory sharing, even at thread level.
What is a good way to implement such pattern?

Upvotes: 4

Views: 965

Answers (1)

Logan Capaldo
Logan Capaldo

Reputation: 40346

For a global (singleton) where each thread gets its own instance, use thread local storage. Boost has thread_specific_ptr for this.

Upvotes: 5

Related Questions