Pain-maker
Mitglied
Hi @ all!
Zu Beginn vielleicht folgender (vereinfachter) Codeauszug:
Code:
#include <ScriptEngine>
static ScriptEngine *vbSc = NULL;
void initEngine()
{
vbSc = new ScriptEngine();
}
int loadScript(const std::string filePath)
{
return vbSc->loadScript(filePath);
}
void exitEngine()
{
delete vbSc;
}
Nun zu meinem Problem:
Ich versuche ein Objekt (ScriptEngine) über initEngine() aus Thread A zu initialiseren. In dem gleichen Thread wird dieses dann auch später wieder über exitEngine() zerstört.
Dann habe ich einen Thread B, der auf das Objekt über loadScript() zugreift.
So lange ich loadScript() in Thread A ausführe, läuft alles Problemlos. Erst sobald ich versuche aus Thread B darauf zuzugreifen, hagelt's Exceptions.
Warum das so ist ist mir klar, da ich einen unerlaubten Threadübergreifenden Zugriff auf das Objekt mache.
Nun wäre aber meine Frage, wie ich das denn am besten lösen könnte?
Oder wie wäre es denn am "sichersten"?
Vielen Dank
Mfg Pain-maker
Zuletzt bearbeitet: