Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
t
 
 
 
 
 
 
 
 
 
 

Concurrent::Channelify

Build Status

Turn a lazy list into an auto-threading lazy list.

SYNOPSIS

use v6;
use Concurrent::Channelify;

my \l1 = (10_000_000..10_100_000).grep({.is-prime});

for my $c := channelify(l1) {
    $c.channel.close if $_ > 10_010_000;
    say $_
}

my \l2 = <a b c>;

for l2⇒ {
    say $_
}

DESCRIPTION

Routines

sub channelify(Positional:D, :$no-thread = False)

Return a new lazy list that is turned into a Channel. If no-thread is True do not start a thread to generate values. The environment variable RAKUDO_MAX_THREAD with a value smaller then 2 has the same effect then no-thread, if set before the use-statement is executed.

The channel can be accessed by calling the mixed in method channel. Closing the channel will force the lazy list to stop producing values and kill the associated thread.

To query if a thread was started call the mixed in method no-thread.

postfix ⇒

see sub channelify

About

turn a lazy list into a concurrent lazy list

Resources

License

Releases

No releases published

Packages

No packages published

Languages

  • Other 100.0%