--- deliantra/Deliantra-Client/DC.pm 2006/12/09 02:21:24 1.136 +++ deliantra/Deliantra-Client/DC.pm 2007/04/01 15:08:14 1.139 @@ -28,7 +28,6 @@ use AnyEvent (); use BerkeleyDB; use Pod::POM (); -use Scalar::Util (); use File::Path (); use Storable (); # finally @@ -127,7 +126,7 @@ $line =~ s/\s+$//; utf8::decode $line; if ($line =~ /^\x{e877}json_msg (.*)$/s) { - $cb->(from_json $1); + $cb->(JSON::XS->new->allow_nonref->decode ($1)); } else { ::message ({ markup => "background($pid): " . CFPlus::asxml $line, @@ -140,7 +139,7 @@ sub background_msg { my ($msg) = @_; - $msg = "\x{e877}json_msg " . to_json $msg; + $msg = "\x{e877}json_msg " . JSON::XS->new->allow_nonref->encode ($msg); $msg =~ s/\n//g; utf8::encode $msg; print $msg, "\n"; @@ -164,8 +163,8 @@ my ($db, $key, $data) = @_; my $hkey = $db + 0; - Scalar::Util::weaken $db; - $DB_SYNC{$hkey} ||= AnyEvent->timer (after => 5, cb => sub { + CFPlus::weaken $db; + $DB_SYNC{$hkey} ||= AnyEvent->timer (after => 30, cb => sub { delete $DB_SYNC{$hkey}; $db->db_sync if $db; }); @@ -287,7 +286,7 @@ $DB_ENV = new BerkeleyDB::Env -Home => $DB_HOME, - -Cachesize => 1_000_000, + -Cachesize => 8_000_000, -ErrFile => "$DB_HOME/errorlog.txt", # -ErrPrefix => "DATABASE", -Verbose => 1,