… | |
… | |
899 | |
899 | |
900 | package AnyEvent::Base::CondVar; |
900 | package AnyEvent::Base::CondVar; |
901 | |
901 | |
902 | # wake up the waiter |
902 | # wake up the waiter |
903 | sub _send { |
903 | sub _send { |
904 | &{ $_[0]{_ae_cb} } if $_[0]{_ae_cb}; |
904 | &{ delete $_[0]{_ae_cb} } if $_[0]{_ae_cb}; |
905 | } |
905 | } |
906 | |
906 | |
907 | sub send { |
907 | sub send { |
|
|
908 | my $cv = shift; |
908 | $_[0]{_ae_sent} = [@_]; |
909 | $cv->{_ae_sent} = [@_]; |
909 | $_[0]->_send; |
910 | $cv->_send; |
910 | } |
911 | } |
911 | |
912 | |
912 | sub croak { |
913 | sub croak { |
913 | $_[0]{_ae_croak} = $_[0]; |
914 | $_[0]{_ae_croak} = $_[1]; |
914 | $_[0]->send; |
915 | $_[0]->send; |
915 | } |
916 | } |
916 | |
917 | |
917 | sub ready { |
918 | sub ready { |
918 | $_[0]{_ae_sent} |
919 | $_[0]{_ae_sent} |