diff options
-rw-r--r-- | lib/rbot/dbhash.rb | 26 | ||||
-rw-r--r-- | lib/rbot/ircbot.rb | 1 |
2 files changed, 21 insertions, 6 deletions
diff --git a/lib/rbot/dbhash.rb b/lib/rbot/dbhash.rb index ed5b9e61..e687cebf 100644 --- a/lib/rbot/dbhash.rb +++ b/lib/rbot/dbhash.rb @@ -112,13 +112,14 @@ module Irc return @@env.open_db(BDB::CIBtree, name, nil, "r+", 0600) end - def DBTree.cleanup_env() + def DBTree.cleanup_logs() + begin + debug "DBTree: checkpointing ..." + @@env.checkpoint + rescue => e + debug "Failed: #{e}" + end begin - debug "DBTree: checking transactions ..." - has_active_txn = @@env.txn_stat["st_nactive"] > 0 - if has_active_txn - debug "DBTree: WARNING: not all transactions completed!" - end debug "DBTree: flushing log ..." @@env.log_flush logs = @@env.log_archive(BDB::ARCH_ABS) @@ -126,6 +127,19 @@ module Irc logs.each { |log| File.delete(log) } + rescue => e + debug "Failed: #{e}" + end + end + + def DBTree.cleanup_env() + begin + debug "DBTree: checking transactions ..." + has_active_txn = @@env.txn_stat["st_nactive"] > 0 + if has_active_txn + debug "DBTree: WARNING: not all transactions completed!" + end + DBTree.cleanup_logs debug "DBTree: closing environment #{@@env}" path = @@env.home @@env.close diff --git a/lib/rbot/ircbot.rb b/lib/rbot/ircbot.rb index 9c682949..e8806254 100644 --- a/lib/rbot/ircbot.rb +++ b/lib/rbot/ircbot.rb @@ -511,6 +511,7 @@ class IrcBot @keywords.save @auth.save @plugins.save + DBTree.cleanup_logs end # call the rescan method for the bot's lang, keywords and all plugins |