AnyEvent-Future
view release on metacpan or search on metacpan
NAME
AnyEvent::Future - use Future with AnyEvent
SYNOPSIS
use AnyEvent;
use AnyEvent::Future;
my $future = AnyEvent::Future->new;
some_async_function( ..., cb => sub { $future->done( @_ ) } );
print Future->wait_any(
$future,
AnyEvent::Future->new_timeout( after => 10 ),
)->get;
Or
use AnyEvent::Future qw( as_future_cb );
print Future->wait_any(
as_future_cb {
some_async_function( ..., cb => shift )
},
AnyEvent::Future->new_timeout( after => 10 ),
)->get;
DESCRIPTION
This subclass of Future integrates with AnyEvent, allowing the await
method to block until the future is ready. It allows AnyEvent-using
code to be written that returns Future instances, so that it can make
full use of Future's abilities, including Future::Utils, and also that
modules using it can provide a Future-based asynchronous interface of
their own.
For a full description on how to use Futures, see the Future
documentation.
CONSTRUCTORS
new
$f = AnyEvent::Future->new
Returns a new leaf future instance, which will allow waiting for its
result to be made available, using the await method.
new_delay
$f = AnyEvent::Future->new_delay( @args )
new_timeout
$f = AnyEvent::Future->new_timeout( @args )
Returns a new leaf future instance that will become ready at the time
given by the arguments, which will be passed to the AnyEvent->timer
method.
new_delay returns a future that will complete successfully at the
alotted time, whereas new_timeout returns a future that will fail with
the message Timeout. This is provided as a simple utility for small
use-cases; for a more find-grained control over the failure message and
additional values you may wish to use new_delay combined with the
then_fail method:
new_delay( after => 10 )
->then_fail( "The operation timed out after 10 seconds", timeout => );
from_cv
$f = AnyEvent::Future->from_cv( $cv )
Returns a new leaf future instance that will become ready when the
given AnyEvent::CondVar instance is ready. The success or failure
result of the future will be the result passed to the condvar's send or
croak method.
METHODS
as_cv
$cv = $f->as_cv
Returns a new AnyEvent::CondVar instance that wraps the given future;
it will complete with success or failure when the future does.
Note that because AnyEvent::CondVar->croak takes only a single string
message for the argument, any subsequent failure detail values from the
future are lost by the condvar. To capture these as well, you may wish
to use an on_fail callback or the failure method, to obtain them.
UTILITY FUNCTIONS
( run in 0.571 second using v1.01-cache-2.11-cpan-39bf76dae61 )