--- deliantra/server/ext/map-tags.ext 2009/10/24 00:25:26 1.19 +++ deliantra/server/ext/map-tags.ext 2010/05/05 23:23:29 1.27 @@ -4,8 +4,8 @@ use JSON::XS; -our $db_mapinfo = cf::sync_job { cf::db_table "tag-mapinfo" }; # info/cache for maps -our $db_target = cf::sync_job { cf::db_table "tag-target" }; # tag => maps +our $db_mapinfo = cf::db_table "tag-mapinfo"; # info/cache for maps +our $db_target = cf::db_table "tag-target"; # tag => maps sub remove_tag_target { my ($txn, $tag, $target) = @_; @@ -72,7 +72,7 @@ # will just retry an hour later BDB::db_txn_finish $txn; - warn "tag-updated $file (= $key) <@tags>\n" + cf::debug "tag-updated $file (= $key) <@tags>\n" if @tags; } @@ -86,7 +86,7 @@ sub reload { my $guard = cf::lock_acquire "map-tags::reload"; - my $start = EV::time; + my $start = AE::time; # 1. check for maps no longer existing { @@ -128,7 +128,6 @@ # scan_dir $cf::PLAYERDIR # for my $login (@{ cf::player::list_logins or [] }) { # for my $path (@{ cf::player::maps $login or [] }) { -# cf::cede_to_tick; # # $path =~ /^~[^\/]+(\/.*)$/ # or next; # doh @@ -151,7 +150,7 @@ # } # } - warn sprintf "map-tag scan (%fs)", EV::time - $start; + cf::info sprintf "map-tag scan finished (%fs)\n", AE::time - $start; } our $RELOAD_SCHEDULER = cf::periodic $SCHEDULE_INTERVAL, Coro::unblock_sub { @@ -178,3 +177,11 @@ grep s/^s//, split /\x00/, $data } + +sub unload { + my $guard = cf::lock_acquire "map-tags::reload"; + + BDB::db_close $db_target; + BDB::db_close $db_mapinfo; +} +