@Christoph-Hart Alright so making it inline does the job, but then the data somehow refuses to ReadLock. This Mean my update function cannot account for it... What's the wizardry here? The WriteLock is still active? But then what do I do?
ExternalData data;
void setExternalData(const ExternalData& ed, int index)
{
data = ed;
ed.referBlockTo(tableValues, 0);
accountForUpdate(); // crashes here
}
inline void accountForUpdate()
{
DataReadLock rl(data);
if (rl)
{
// never goes there form setExternalData,
// but works from other calling points
}
}