mirror of https://github.com/stella-emu/stella.git
Make failure to checkpoint WAL non-fatal, make sure that early logs are not swallowed.
This commit is contained in:
parent
cc5db6b330
commit
ca96f20bc2
|
@ -75,10 +75,22 @@ void SqliteDatabase::initialize()
|
||||||
throw SqliteError("unable to initialize sqlite DB for unknown reason");
|
throw SqliteError("unable to initialize sqlite DB for unknown reason");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Logger::log("successfully opened " + myDatabaseFile, 2);
|
||||||
|
|
||||||
exec("PRAGMA journal_mode=WAL");
|
exec("PRAGMA journal_mode=WAL");
|
||||||
|
|
||||||
if (sqlite3_wal_checkpoint_v2(myHandle, nullptr, SQLITE_CHECKPOINT_TRUNCATE, nullptr, nullptr) != SQLITE_OK)
|
switch (sqlite3_wal_checkpoint_v2(myHandle, nullptr, SQLITE_CHECKPOINT_TRUNCATE, nullptr, nullptr)) {
|
||||||
throw SqliteError(sqlite3_errmsg(myHandle));
|
case SQLITE_OK:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SQLITE_MISUSE:
|
||||||
|
Logger::log("failed to checkpoint WAL on " + myDatabaseFile + " - WAL probably unavailable", 1);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
Logger::log("failed to checkpoint WAL on " + myDatabaseFile + " : " + sqlite3_errmsg(myHandle), 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -77,6 +77,7 @@ namespace {
|
||||||
OSystem::OSystem()
|
OSystem::OSystem()
|
||||||
: myLauncherUsed(false),
|
: myLauncherUsed(false),
|
||||||
myQuitLoop(false),
|
myQuitLoop(false),
|
||||||
|
mySettingsLoaded(false),
|
||||||
myFpsMeter(FPS_METER_QUEUE_SIZE)
|
myFpsMeter(FPS_METER_QUEUE_SIZE)
|
||||||
{
|
{
|
||||||
// Get built-in features
|
// Get built-in features
|
||||||
|
@ -224,6 +225,7 @@ void OSystem::loadConfig(const Settings::Options& options)
|
||||||
|
|
||||||
Logger::log("Loading config options ...", 2);
|
Logger::log("Loading config options ...", 2);
|
||||||
mySettings->load(options);
|
mySettings->load(options);
|
||||||
|
mySettingsLoaded = true;
|
||||||
|
|
||||||
myPropSet->load(myPropertiesFile);
|
myPropSet->load(myPropertiesFile);
|
||||||
}
|
}
|
||||||
|
@ -492,7 +494,7 @@ void OSystem::logMessage(const string& message, uInt8 level)
|
||||||
cout << message << endl << std::flush;
|
cout << message << endl << std::flush;
|
||||||
myLogMessages += message + "\n";
|
myLogMessages += message + "\n";
|
||||||
}
|
}
|
||||||
else if(level <= uInt8(mySettings->getInt("loglevel")))
|
else if(level <= uInt8(mySettings->getInt("loglevel")) || !mySettingsLoaded)
|
||||||
{
|
{
|
||||||
if(mySettings->getBool("logtoconsole"))
|
if(mySettings->getBool("logtoconsole"))
|
||||||
cout << message << endl << std::flush;
|
cout << message << endl << std::flush;
|
||||||
|
|
|
@ -537,6 +537,8 @@ class OSystem
|
||||||
string myDefaultSaveDir;
|
string myDefaultSaveDir;
|
||||||
string myDefaultLoadDir;
|
string myDefaultLoadDir;
|
||||||
|
|
||||||
|
bool mySettingsLoaded;
|
||||||
|
|
||||||
string myCheatFile;
|
string myCheatFile;
|
||||||
string myConfigFile;
|
string myConfigFile;
|
||||||
string myPaletteFile;
|
string myPaletteFile;
|
||||||
|
|
Loading…
Reference in New Issue