При попытке создать класс контейнера потока -с нуля я столкнулся с проблемой возврата значений из методов доступа. Например в Windows:
myNode getSomeData( )
{
EnterCriticalSection(& myCritSec);
myNode retobj;
// fill retobj with data from structure
LeaveCriticalSection(& myCritSec);
return retobj;
}
Теперь я предполагаю, что этот тип метода вовсе не является безопасным для потоков -, потому что после того, как код освобождает критическую секцию, может появиться другой поток и немедленно перезаписать retobj
до того, как первый поток вернется. Итак, каков элегантный способ вернуть retobj
вызывающему объекту потоком -безопасным образом?