diff options
author | orwell96 <orwell@bleipb.de> | 2021-01-02 20:57:45 +0100 |
---|---|---|
committer | orwell96 <orwell@bleipb.de> | 2021-01-12 13:31:03 +0100 |
commit | 0ba5874b4f5f1a7565df8bfd20c91c309647429a (patch) | |
tree | 1193759e5e4c24fc238cdf18a0f0b55613acb325 | |
parent | 9d12c72499fae08639f6628047a57cbb2cd837a7 (diff) | |
download | advtrains-0ba5874b4f5f1a7565df8bfd20c91c309647429a.tar.gz advtrains-0ba5874b4f5f1a7565df8bfd20c91c309647429a.tar.bz2 advtrains-0ba5874b4f5f1a7565df8bfd20c91c309647429a.zip |
Some more serializer fixes (backported from new_lzb):
- Move DUMP_DEBUG_SAVE block before the actual saving so it can be used to trace serializer errors
- Don't crash on functions in data, ignore them silently
- Increase the save interval
-rw-r--r-- | advtrains/init.lua | 20 | ||||
-rw-r--r-- | serialize_lib/serialize.lua | 4 |
2 files changed, 12 insertions, 12 deletions
diff --git a/advtrains/init.lua b/advtrains/init.lua index 3c3e47b..6e622e5 100644 --- a/advtrains/init.lua +++ b/advtrains/init.lua @@ -537,6 +537,15 @@ advtrains.avt_save = function(remove_players_from_wagons) ["ndb4.ls"] = advtrains.ndb.save_callback } + if DUMP_DEBUG_SAVE then + local file, err = io.open(advtrains.fpath.."_DUMP", "w") + if err then + return + end + file:write(dump(parts_table)) + file:close() + end + --THE MAGIC HAPPENS HERE local succ, err = serialize_lib.save_atomic_multiple(parts_table, advtrains.fpath.."_", callbacks_table) @@ -546,21 +555,12 @@ advtrains.avt_save = function(remove_players_from_wagons) -- store version advtrains.save_component(4, "version") end - - if DUMP_DEBUG_SAVE then - local file, err = io.open(advtrains.fpath.."_DUMP", "w") - if err then - return - end - file:write(dump(parts_table)) - file:close() - end end --## MAIN LOOP ##-- --Calls all subsequent main tasks of both advtrains and atlatc local init_load=false -local save_interval=20 +local save_interval=60 local save_timer=save_interval advtrains.mainloop_runcnt=0 diff --git a/serialize_lib/serialize.lua b/serialize_lib/serialize.lua index 436bf18..a525e9e 100644 --- a/serialize_lib/serialize.lua +++ b/serialize_lib/serialize.lua @@ -88,8 +88,8 @@ function value_to_string(t) elseif type(t)=="string" then return "S"..escape_chars(t) else - file:close() - error("Can not serialize '"..type(t).."' type!") + --error("Can not serialize '"..type(t).."' type!") + return "S<function>" end return str end |