File manager - Edit - /usr/local/cpanel/3rdparty/perl/542/cpanel-lib/Promise/ES6/IOAsync.pm
Back
package Promise::ES6::IOAsync; use strict; use warnings; =encoding utf-8 =head1 NAME Promise::ES6::IOAsync - L<Promises/A+-compliant|https://github.com/promises-aplus/promises-spec> promises for L<IO::Async> =head1 SYNOPSIS my $loop = IO::Async::Loop->new(); my $loop_guard = Promise::ES6::IOAsync::SET_LOOP($loop); # Now use Promise::ES6::IOAsync as you would plain Promise::ES6. =head1 DEPRECATION NOTICE This module is deprecated and will go away eventually. Use C<use_event()> instead, as described in L<Promise::ES6>’s documentation. =head1 DESCRIPTION This module exposes the same functionality as L<Promise::ES6::AnyEvent> but for L<IO::Async> rather than L<AnyEvent>. Whereas L<AnyEvent> assumes that an event loop is global, L<IO::Async> allows multiple concurrent event loops. In order to accommodate this difference in architecture, this module requires an active L<IO::Async::Loop> object before it can be used. See C<SET_LOOP()> below. =cut #---------------------------------------------------------------------- use parent qw(Promise::ES6::EventLoopBase); #---------------------------------------------------------------------- my $LOOP; =head1 FUNCTIONS =head2 $guard = SET_LOOP( $LOOP ) Sets this module’s active L<IO::Async::Loop> object. This is a internal global; if you try to set a loop while one is already set, an exception is thrown. This returns an opaque object that, when DESTROY()ed, will clear this module’s internal loop. =cut sub SET_LOOP { die "Loop is already set!" if $LOOP; if (!defined wantarray) { my $fn = (caller 0)[3]; die "Void context to $fn() is useless!"; } $LOOP = $_[0]; return bless [ \$LOOP ], 'Promise::ES6::IOAsync::_GUARD'; } sub _postpone { die "Need active loop … did you call SET_LOOP() first?" if !$LOOP; return $LOOP->later( $_[1] ); } #---------------------------------------------------------------------- package Promise::ES6::IOAsync::_GUARD; sub DESTROY { ${ $_[0][0] } = undef; } 1;
| ver. 1.4 |
Github
|
.
| PHP 8.1.34 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings