Skip to content

Instantly share code, notes, and snippets.

@zostay
Created March 13, 2019 05:06

Revisions

  1. zostay created this gist Mar 13, 2019.
    20 changes: 20 additions & 0 deletions ping-pong-end-emit.p6
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    use v6.d;

    my Supplier $pinger .= new;
    my Supplier $ponger .= new;

    react {
    say 'Beginning ping/pong...';
    whenever $pinger.Supply.throttle: 1, 1 {
    .say;
    $ponger.emit: 'pong';
    }
    whenever $ponger.Supply.throttle: 1, 1 {
    .say;
    $pinger.emit: 'ping';
    }
    whenever Promise.in(10) {
    exit 0;
    }
    $pinger.emit: 'ping';
    }
    22 changes: 22 additions & 0 deletions ping-pong-supplier-preserving.p6
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,22 @@
    use v6.d;

    my Supplier::Preserving $pinger .= new;
    my Supplier::Preserving $ponger .= new;

    react {
    ENTER {
    say 'Beginning ping/pong...';
    $pinger.emit: 'ping';
    }
    whenever $pinger.Supply.throttle: 1, 1 {
    .say;
    $ponger.emit: 'pong';
    }
    whenever $ponger.Supply.throttle: 1, 1 {
    .say;
    $pinger.emit: 'ping';
    }
    whenever Promise.in(10) {
    exit 0;
    }
    }