--- deliantra/server/lib/cf.pm 2007/10/12 18:17:16 1.384 +++ deliantra/server/lib/cf.pm 2007/10/12 19:13:26 1.385 @@ -6,11 +6,11 @@ use Symbol; use List::Util; use Socket; -use Storable; use Event; use Opcode; use Safe; use Safe::Hole; +use Storable (); use Coro 4.1 (); use Coro::State; @@ -429,7 +429,7 @@ # this is the main coro, too bad, we have to block # till the operation succeeds, freezing the server :/ - LOG llevError | logBacktrace, Carp::longmess "sync job";#d# + LOG llevError, Carp::longmess "sync job";#d# # TODO: use suspend/resume instead # (but this is cancel-safe) @@ -973,11 +973,16 @@ sub _can_merge { my ($ob1, $ob2) = @_; - local $Storable::canonical = 1; - my $fob1 = Storable::freeze $ob1; - my $fob2 = Storable::freeze $ob2; + return 1;#d# - $fob1 eq $fob2 + #todo#d# kill yourself and do some recursive checking manually without storable + sync_job { + my $guard = Coro::Storable::guard; + local $Storable::canonical = 1; + my $fob1 = Storable::freeze $ob1; + my $fob2 = Storable::freeze $ob2; + $fob1 eq $fob2 + } } sub reattach {