Есть примерно такой код
SomeClass::Func()
{
memder->SomeFunction();
}
member::SomeFunction()
{
// SomeClass - SingleTone
SomeClassHolder()->Instance()->SomeOtherFunction();
}
Раньше был один поток и такая конструкция работала, теперь появилась необходимость распределить нагрузку на несколько потоков, следовательно конструкция типа SomeClassHolder()->Instance()->SomeOtherFunction() не подходит. пока вижу 2 варианта решения.
1)Написать Singletone — который в зависимости от того из какого потока его вызвали будет возвращать соответствующий указатель.
— количество потоков константно не изменяется во время работы программы.
2)Передавать нужный объект в качестве параметра SomeOtherFunction(SomeClass &someclass);
Интересно может есть какиенить подводные камни которых я не вижу или другие интересные решения ?