Temporarily disable Nasal callbacks in lazily loaded scenery models
to avoid segfaults due to multi-threading issues. Will need to be replaced by proper fix, if this proves Nasal related segfaults to be fixed.
This commit is contained in:
parent
246feef85f
commit
59d400d58b
1 changed files with 13 additions and 2 deletions
|
@ -247,9 +247,20 @@ FGTileMgr::loadTileModel(const string& modelPath, bool cacheModel)
|
|||
SGModelLib::loadModel(fullPath.str(), globals->get_props(),
|
||||
new FGNasalModelData);
|
||||
else
|
||||
{
|
||||
/* TODO FGNasalModelData's callback "modelLoaded" isn't thread-safe.
|
||||
* But deferred (or paged) OSG loading runs in a separate thread, which would
|
||||
* trigger the FGNasalModelData::modelLoaded callback. We're easily doomed
|
||||
* when this happens and the model actually contains a Nasal "load" hook - which
|
||||
* would run the Nasal parser and Nasal script execution in a separate thread...
|
||||
* => Disabling the callback for now, to test if all Nasal related segfaults are
|
||||
* gone. Proper resolution is TBD. We'll need to somehow decouple the OSG callback,
|
||||
* so we can run the Nasal stuff in the main thread.
|
||||
*/
|
||||
result=
|
||||
SGModelLib::loadDeferredModel(fullPath.str(), globals->get_props(),
|
||||
new FGNasalModelData);
|
||||
SGModelLib::loadDeferredModel(fullPath.str(), globals->get_props()/*,
|
||||
new FGNasalModelData*/);
|
||||
}
|
||||
} catch (const sg_io_exception& exc) {
|
||||
string m(exc.getMessage());
|
||||
m += " ";
|
||||
|
|
Loading…
Add table
Reference in a new issue