--- deliantra/server/lib/cf.pm 2007/01/07 23:10:43 1.146 +++ deliantra/server/lib/cf.pm 2007/01/08 22:32:10 1.152 @@ -1121,8 +1121,12 @@ my $guard = cf::lock_acquire "user_find:$login"; - $cf::PLAYER{$login} ||= (load_pl path $login or return); - }; + $cf::PLAYER{$_[0]} || do { + my $pl = load_pl path $login + or return; + $cf::PLAYER{$login} = $pl + } + } } sub save($) { @@ -1135,10 +1139,9 @@ return if $pl->{deny_save}; - IO::AIO::aio_mkdir playerdir $pl, 0770; + Coro::AIO::aio_mkdir playerdir $pl, 0770; $pl->{last_save} = $cf::RUNTIME; - Coro::cede; $pl->save_pl ($path); Coro::cede; } @@ -1169,12 +1172,10 @@ my $path = playerdir $pl; my $temp = "$path~$cf::RUNTIME~deleting~"; - IO::AIO::aio_rename $path, $temp, sub { - delete $cf::PLAYER{$pl->ob->name}; - $pl->destroy; - - IO::AIO::aio_rmtree $temp; - }; + Coro::AIO::aio_rename $path, $temp; + delete $cf::PLAYER{$pl->ob->name}; + $pl->destroy; + IO::AIO::aio_rmtree $temp; } =item $player->ext_reply ($msgid, $msgtype, %msg) @@ -1683,7 +1684,8 @@ # warn "entering ", $map->path, " at ($x, $y)\n" # if $map; - $map or $self->message ("The exit is closed", cf::NDI_UNIQUE | cf::NDI_RED); + $map or Carp::cluck ("oy");#d# + $map or $self->message ("The exit to '" . ($path->visible_name) . "' is closed", cf::NDI_UNIQUE | cf::NDI_RED); $self->leave_link ($map, $x, $y); })->prio (1); @@ -2101,7 +2103,7 @@ if (exists $CFG{mlockall}) { eval { - $CFG{mlockall} ? &mlockall : &munlockall + $CFG{mlockall} ? eval "mlockall()" : eval "munlockall()" and die "WARNING: m(un)lockall failed: $!\n"; }; warn $@ if $@;