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.96 by root, Fri Dec 22 06:02:29 2006 UTC vs.
Revision 1.99 by root, Sat Dec 23 05:25:35 2006 UTC

14use Coro::Event; 14use Coro::Event;
15use Coro::Timer; 15use Coro::Timer;
16use Coro::Signal; 16use Coro::Signal;
17use Coro::Semaphore; 17use Coro::Semaphore;
18 18
19use IO::AIO; 19use IO::AIO 2.3;
20use YAML::Syck (); 20use YAML::Syck ();
21use Time::HiRes; 21use Time::HiRes;
22 22
23use Event; $Event::Eval = 1; # no idea why this is required, but it is 23use Event; $Event::Eval = 1; # no idea why this is required, but it is
24 24
886 886
887 if (@{ $ns->{query_queue} } == @$queue) { 887 if (@{ $ns->{query_queue} } == @$queue) {
888 if (@$queue) { 888 if (@$queue) {
889 $ns->send_packet ($ns->{query_queue}[0][0]); 889 $ns->send_packet ($ns->{query_queue}[0][0]);
890 } else { 890 } else {
891 $ns->state (ST_PLAYING); 891 $ns->state (ST_PLAYING) if $ns->state == ST_CUSTOM;
892 } 892 }
893 } 893 }
894 }, 894 },
895); 895);
896 896
908 my $coro; $coro = async { 908 my $coro; $coro = async {
909 eval { 909 eval {
910 $cb->(); 910 $cb->();
911 }; 911 };
912 warn $@ if $@; 912 warn $@ if $@;
913 warn "cancel myself\n";#d#
914 delete $self->{_coro}{$coro+0}; 913 delete $self->{_coro}{$coro+0};
915 }; 914 };
916 915
917 $self->{_coro}{$coro+0} = $coro; 916 $self->{_coro}{$coro+0} = $coro;
918} 917}
919 918
920cf::client->attach ( 919cf::client->attach (
921 on_destroy => sub { 920 on_destroy => sub {
922 my ($ns) = @_; 921 my ($ns) = @_;
923 922
924 warn "cancel $_" for values %{ $ns->{_coro} || {} };#d#
925 $_->cancel for values %{ $ns->{_coro} || {} }; 923 $_->cancel for values %{ (delete $ns->{_coro}) || {} };
926 }, 924 },
927); 925);
928 926
929=back 927=back
930 928

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines