ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC.pm (file contents):
Revision 1.136 by root, Sat Dec 9 02:21:24 2006 UTC vs.
Revision 1.138 by root, Fri Jan 5 17:37:39 2007 UTC

26use utf8; 26use utf8;
27 27
28use AnyEvent (); 28use AnyEvent ();
29use BerkeleyDB; 29use BerkeleyDB;
30use Pod::POM (); 30use Pod::POM ();
31use Scalar::Util ();
32use File::Path (); 31use File::Path ();
33use Storable (); # finally 32use Storable (); # finally
34 33
35BEGIN { 34BEGIN {
36 use Crossfire::Protocol::Base (); 35 use Crossfire::Protocol::Base ();
162 161
163sub put($$$) { 162sub put($$$) {
164 my ($db, $key, $data) = @_; 163 my ($db, $key, $data) = @_;
165 164
166 my $hkey = $db + 0; 165 my $hkey = $db + 0;
167 Scalar::Util::weaken $db; 166 CFPlus::weaken $db;
168 $DB_SYNC{$hkey} ||= AnyEvent->timer (after => 5, cb => sub { 167 $DB_SYNC{$hkey} ||= AnyEvent->timer (after => 30, cb => sub {
169 delete $DB_SYNC{$hkey}; 168 delete $DB_SYNC{$hkey};
170 $db->db_sync if $db; 169 $db->db_sync if $db;
171 }); 170 });
172 171
173 $db->db_put ($key => $data) 172 $db->db_put ($key => $data)
285 ? eval "DB_REGISTER | DB_RECOVER" 284 ? eval "DB_REGISTER | DB_RECOVER"
286 : 0; 285 : 0;
287 286
288 $DB_ENV = new BerkeleyDB::Env 287 $DB_ENV = new BerkeleyDB::Env
289 -Home => $DB_HOME, 288 -Home => $DB_HOME,
290 -Cachesize => 1_000_000, 289 -Cachesize => 8_000_000,
291 -ErrFile => "$DB_HOME/errorlog.txt", 290 -ErrFile => "$DB_HOME/errorlog.txt",
292# -ErrPrefix => "DATABASE", 291# -ErrPrefix => "DATABASE",
293 -Verbose => 1, 292 -Verbose => 1,
294 -Flags => DB_CREATE | DB_RECOVER | DB_INIT_MPOOL | DB_INIT_LOCK | DB_INIT_TXN | $recover, 293 -Flags => DB_CREATE | DB_RECOVER | DB_INIT_MPOOL | DB_INIT_LOCK | DB_INIT_TXN | $recover,
295 -SetFlags => DB_AUTO_COMMIT | DB_LOG_AUTOREMOVE, 294 -SetFlags => DB_AUTO_COMMIT | DB_LOG_AUTOREMOVE,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines