forked from Mirrorlandia_minetest/minetest
Flush rollback log more often
Flushes the buffer of rollback actions that wait to get saved in two more situations: 1. Flushes in the destructor of the rollback. This makes the server not forget the last < 500 rollback entries when it shuts down. 2. Flushes the rollback when /rollback_check is invoked. This is neccessary as otherwise it leads to confusion if users want to test the rollback functionality by placing a node and then executing the check on it, or if the actions were very recent out of other reasons.
This commit is contained in:
parent
964be640cb
commit
f9eb31f317
@ -107,6 +107,8 @@ RollbackManager::RollbackManager(const std::string & world_path,
|
|||||||
|
|
||||||
RollbackManager::~RollbackManager()
|
RollbackManager::~RollbackManager()
|
||||||
{
|
{
|
||||||
|
flush();
|
||||||
|
|
||||||
SQLOK(sqlite3_finalize(stmt_insert));
|
SQLOK(sqlite3_finalize(stmt_insert));
|
||||||
SQLOK(sqlite3_finalize(stmt_replace));
|
SQLOK(sqlite3_finalize(stmt_replace));
|
||||||
SQLOK(sqlite3_finalize(stmt_select));
|
SQLOK(sqlite3_finalize(stmt_select));
|
||||||
@ -930,6 +932,7 @@ std::list<RollbackAction> RollbackManager::getEntriesSince(time_t first_time)
|
|||||||
std::list<RollbackAction> RollbackManager::getNodeActors(v3s16 pos, int range,
|
std::list<RollbackAction> RollbackManager::getNodeActors(v3s16 pos, int range,
|
||||||
time_t seconds, int limit)
|
time_t seconds, int limit)
|
||||||
{
|
{
|
||||||
|
flush();
|
||||||
time_t cur_time = time(0);
|
time_t cur_time = time(0);
|
||||||
time_t first_time = cur_time - seconds;
|
time_t first_time = cur_time - seconds;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user