ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/map-tags.ext
(Generate patch)

Comparing deliantra/server/ext/map-tags.ext (file contents):
Revision 1.7 by root, Thu Sep 13 16:16:36 2007 UTC vs.
Revision 1.12 by root, Sun Dec 2 15:16:28 2007 UTC

79 79
80 # we don't actually care if it succeeds or not, as we 80 # we don't actually care if it succeeds or not, as we
81 # will just retry an hour later 81 # will just retry an hour later
82 BDB::db_txn_finish $txn; 82 BDB::db_txn_finish $txn;
83 83
84# warn "tag-updated $file (= $key) $hash\n";#d# 84 warn "tag-updated $file (= $key) <@tags>\n"
85 if @tags;
85} 86}
86 87
87sub scan_static { 88sub scan_static {
88 my ($dir, $map) = @_; 89 my ($dir, $map) = @_;
89 90
101 &scan_static ("$dir/$_", "$map$_/") 102 &scan_static ("$dir/$_", "$map$_/")
102 for @$dirs; 103 for @$dirs;
103} 104}
104 105
105sub reload { 106sub reload {
107 my $guard = cf::lock_acquire "map-tags::reload";
108
106 my $start = Event::time; 109 my $start = EV::time;
107 110
108 # 1. check for maps no longer existing 111 # 1. check for maps no longer existing
109 { 112 {
110 my @delkeys; 113 my @delkeys;
111 114
166# delete $map->{deny_reset}; 169# delete $map->{deny_reset};
167# } 170# }
168# } 171# }
169# } 172# }
170 173
171 warn sprintf "map-tag scan (%fs)", Event::time - $start; 174 warn sprintf "map-tag scan (%fs)", EV::time - $start;
172} 175}
173 176
174our $RELOAD_SCHEDULER = Event->timer ( 177our $RELOAD_SCHEDULER = cf::periodic $SCHEDULE_INTERVAL, Coro::unblock_sub {
175 after => 0,
176 interval => $SCHEDULE_INTERVAL,
177 data => cf::WF_AUTOCANCEL,
178 cb => Coro::unblock_sub {
179 $Coro::current->prio (Coro::PRIO_MIN); 178 $Coro::current->prio (Coro::PRIO_MIN);
179 $Coro::current->desc ("map-tag scanner");
180 reload; 180 reload;
181 }, 181};
182); 182
183cf::async { reload }; # force at startup
183 184
184# find all objects with the given tag, or at least try to 185# find all objects with the given tag, or at least try to
185sub find($) { 186sub find($) {
186 my ($tag) = @_; 187 my ($tag) = @_;
187 188

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines