[Southampton-pm] Perl Mongers meetup

Vytautas D vytdau at gmail.com
Thu Dec 3 05:56:56 PST 2015


Iain,
See dummy Coro example, hopefully code is self explanatory. Here are
two forever loops, and they cede automatically on blocking calls i.e.
sleep and rouse_wait.

#!/usr/bin/perl

use 5.14.0;
use warnings;

use Coro;
use Coro::AnyEvent;
use AnyEvent;
use AnyEvent::HTTP;

$AnyEvent::HTTP::MAX_PER_HOST = 10;

# Some dummy stats
my $s = 0; # succeeded
my $f = 0; # failed
my $round = 0;

# Track time passed
my $start = AnyEvent->now();

my $watcher = Coro::async{
    while(1) {
        Coro::AnyEvent::sleep( 5 );
        my $end = AnyEvent->now();
        my $lasted = $end - $start;

        say "s/f: $s/$f in $lasted, ", ($s+$f)/$lasted, "req/s";

        # reset stats
        $s = 0;
        $f = 0;

        # reset start time
        $start = $end;
    }
};

while (1) {
    my $cb = Coro::rouse_cb();
    AnyEvent::HTTP::http_request(
        GET          => "http://google.com",
        "persistent" => "1",
        "keepalive"  => "1",
        $cb,
    );
    my ( $body, $hdr ) = Coro::rouse_wait($cb);

    if ( $hdr->{Status} =~ /^2/ ) {
        $s++;
    } else {
        $f++;
    }
}

On Wed, Dec 2, 2015 at 8:07 PM, Vytautas D <vytdau at gmail.com> wrote:
> Warning to anyone coming - it took me 20mins to find a parking...
>
> On 2 Dec 2015 13:52, "GARLAND DUNCAN" <duncan.garland at ntlworld.com> wrote:
>>
>>
>>
>> > On 02 December 2015 at 12:09 Anton Oussik <antonoussik at gmail.com> wrote:
>> >
>> >
>> > Will happen tonight at the platform tavern, I plan to be there from
>> > around
>> > 7. Hope to discuss the upcoming workshop and Perl 6. See you there!
>> > _______________________________________________
>> > Southampton-pm mailing list
>> > Southampton-pm at pm.org
>> > http://mail.pm.org/mailman/listinfo/southampton-pm
>>
>>
>> I'll be there
>> _______________________________________________
>> Southampton-pm mailing list
>> Southampton-pm at pm.org
>> http://mail.pm.org/mailman/listinfo/southampton-pm


More information about the Southampton-pm mailing list