05-13-2012, 01:34 AM
Funny thing happened to me now. I'm writing a lighting progress for the cWorld::InitializeSpawn(), quite the same as cWorldLoadProgress, and it just happenned that the lighting had finished before the progress thread actually had a chance to start executing. So the cIsThread destructor waits for the thread to even begin, but the thread object is already half-destructed then, meaning that the Execute() method is already gone. The result: pure virtual function call. So finally I know one of the ways how that particular error can be reached.