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.137 by root, Sat Dec 9 21:26:45 2006 UTC vs.
Revision 1.139 by root, Sun Apr 1 15:08:14 2007 UTC

124 while ($buffer =~ s/^(.*)\n//) { 124 while ($buffer =~ s/^(.*)\n//) {
125 my $line = $1; 125 my $line = $1;
126 $line =~ s/\s+$//; 126 $line =~ s/\s+$//;
127 utf8::decode $line; 127 utf8::decode $line;
128 if ($line =~ /^\x{e877}json_msg (.*)$/s) { 128 if ($line =~ /^\x{e877}json_msg (.*)$/s) {
129 $cb->(from_json $1); 129 $cb->(JSON::XS->new->allow_nonref->decode ($1));
130 } else { 130 } else {
131 ::message ({ 131 ::message ({
132 markup => "background($pid): " . CFPlus::asxml $line, 132 markup => "background($pid): " . CFPlus::asxml $line,
133 }); 133 });
134 } 134 }
137} 137}
138 138
139sub background_msg { 139sub background_msg {
140 my ($msg) = @_; 140 my ($msg) = @_;
141 141
142 $msg = "\x{e877}json_msg " . to_json $msg; 142 $msg = "\x{e877}json_msg " . JSON::XS->new->allow_nonref->encode ($msg);
143 $msg =~ s/\n//g; 143 $msg =~ s/\n//g;
144 utf8::encode $msg; 144 utf8::encode $msg;
145 print $msg, "\n"; 145 print $msg, "\n";
146} 146}
147 147
162sub put($$$) { 162sub put($$$) {
163 my ($db, $key, $data) = @_; 163 my ($db, $key, $data) = @_;
164 164
165 my $hkey = $db + 0; 165 my $hkey = $db + 0;
166 CFPlus::weaken $db; 166 CFPlus::weaken $db;
167 $DB_SYNC{$hkey} ||= AnyEvent->timer (after => 5, cb => sub { 167 $DB_SYNC{$hkey} ||= AnyEvent->timer (after => 30, cb => sub {
168 delete $DB_SYNC{$hkey}; 168 delete $DB_SYNC{$hkey};
169 $db->db_sync if $db; 169 $db->db_sync if $db;
170 }); 170 });
171 171
172 $db->db_put ($key => $data) 172 $db->db_put ($key => $data)
284 ? eval "DB_REGISTER | DB_RECOVER" 284 ? eval "DB_REGISTER | DB_RECOVER"
285 : 0; 285 : 0;
286 286
287 $DB_ENV = new BerkeleyDB::Env 287 $DB_ENV = new BerkeleyDB::Env
288 -Home => $DB_HOME, 288 -Home => $DB_HOME,
289 -Cachesize => 1_000_000, 289 -Cachesize => 8_000_000,
290 -ErrFile => "$DB_HOME/errorlog.txt", 290 -ErrFile => "$DB_HOME/errorlog.txt",
291# -ErrPrefix => "DATABASE", 291# -ErrPrefix => "DATABASE",
292 -Verbose => 1, 292 -Verbose => 1,
293 -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,
294 -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