--- deliantra/server/lib/cf.pm 2007/08/30 08:34:40 1.348 +++ deliantra/server/lib/cf.pm 2007/08/31 04:10:43 1.349 @@ -2088,17 +2088,21 @@ sub nuke { my ($self) = @_; - delete $cf::MAP{$self->path}; + { + my $lock = cf::lock_acquire "map_data:$self->{path}"; - $self->unlink_save; + delete $cf::MAP{$self->path}; - bless $self, "cf::map"; - delete $self->{deny_reset}; - $self->{deny_save} = 1; - $self->reset_timeout (1); - $self->path ($self->{path} = "{nuke}/" . ($nuke_counter++)); + bless $self, "cf::map"; + delete $self->{deny_reset}; + $self->{deny_save} = 1; + $self->reset_timeout (1); + $self->path ($self->{path} = "{nuke}/" . ($nuke_counter++)); - $cf::MAP{$self->path} = $self; + $self->unlink_save; + + $cf::MAP{$self->path} = $self; + } $self->reset; # polite request, might not happen }