ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/lib/cf.pm
(Generate patch)

Comparing deliantra/server/lib/cf.pm (file contents):
Revision 1.127 by root, Wed Jan 3 00:05:26 2007 UTC vs.
Revision 1.130 by root, Thu Jan 4 00:08:08 2007 UTC

1322} 1322}
1323 1323
1324sub swap_out { 1324sub swap_out {
1325 my ($self) = @_; 1325 my ($self) = @_;
1326 1326
1327 # save first because save cedes
1328 $self->save;
1329
1327 return if $self->players; 1330 return if $self->players;
1328 return if $self->in_memory != cf::MAP_IN_MEMORY; 1331 return if $self->in_memory != cf::MAP_IN_MEMORY;
1329 return if $self->{deny_save}; 1332 return if $self->{deny_save};
1330 1333
1331 $self->save;
1332 $self->clear; 1334 $self->clear;
1333 $self->in_memory (cf::MAP_SWAPPED); 1335 $self->in_memory (cf::MAP_SWAPPED);
1334} 1336}
1335 1337
1336sub reset_at { 1338sub reset_at {
1713 on_reply => sub { 1715 on_reply => sub {
1714 my ($ns, $msg) = @_; 1716 my ($ns, $msg) = @_;
1715 1717
1716 # this weird shuffling is so that direct followup queries 1718 # this weird shuffling is so that direct followup queries
1717 # get handled first 1719 # get handled first
1718 my $queue = delete $ns->{query_queue}; 1720 my $queue = delete $ns->{query_queue}
1721 or return; # be conservative, not sure how that can happen, but we saw a crash here
1719 1722
1720 (shift @$queue)->[1]->($msg); 1723 (shift @$queue)->[1]->($msg);
1721 1724
1722 push @{ $ns->{query_queue} }, @$queue; 1725 push @{ $ns->{query_queue} }, @$queue;
1723 1726

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines