AE  简单的快速的新的 cooler的 AnyEvent API

AE是AnyEvent + EV

use AnyEvent; # not AE

# file handle or descriptor readable
my $w = AE::io $fh, 0, sub { ... };

# one-shot or repeating timers
my $w = AE::timer $seconds, 0, sub { ... }; # once
my $w = AE::timer $seconds, $interval, sub { ... }; # repeated

print AE::now; # prints current event loop time
print AE::time; # think Time::HiRes::time or simply CORE::time.

# POSIX signal
my $w = AE::signal TERM => sub { ... };

# child process exit
my $w = AE::child $pid, sub {
my ($pid, $status) = @_;
...
};

# called when event loop idle (if applicable)
my $w = AE::idle sub { ... };

my $cv = AE::cv; # stores whether a condition was flagged
$cv->send; # wake up current and all future recv's
$cv->recv; # enters "main loop" till $condvar gets ->send
# use a condvar in callback mode:
$cv->cb (sub { $_[0]->recv });



描述:

这个模块描述新的简单的 AnyEvent API.


新的API的基本原理是经验与EV现实这个API实际工作,尽管它缺乏可扩展性,导致更短的,更容易的和更快的API。


和AnyEvent主要区别是 函数调用时用方法调用代替,没有命名的参数被使用。


这使得调用来观察创建函数真的很短, 会让一个程序变得易读尽管缺乏命名参数。


函数调用也允许更多的静态类型检查相比方法调用, 因此很多错误在编译时间被捕获

另外, 一些后端的(Perl和EV)是如此之快,方法调用的开销是非常明显的( EV它增加了执行时间5-6倍,


Perl 方法调用开销是大约两个因素)


需要注意的是AE API 是一个非传统的, 不是未来的版本, AnyEvent API.

两个API 可以交替使用,没有计划的切换



作为AE API 是互补的,不是所有的在AnyEvent API是可用的,



你仍旧需要使用AnyEvent为了更好的东西。另外,你不能直接使用AE,使用AnyEvent 会提供AE的名字空间。


目前,那些函数将会变的很慢 相比它们的方法调用 当使用AnyEvent::Strict or AnyEvent::Debug::wrap.


函数:

这个章节简单的描述了非正统的构造器和其他可用函数在AE的名字空间里。


语义在这里没有描述,请参阅说明的函数或方法中具有相同名称的任何帮助的细节。