Erratum, there was a omission in my previous post, here is the complete
snippet:

On Tue, Jul 12, 2011 at 9:25 AM, Serge Hulne <serge.hu...@gmail.com> wrote:



> If the code proposed by Luca was stored separately in its own file (or
> library), then all one would have to to to use use this
> goroutine/channnels/-ike construct would go like:
>
> /////////////////////
> using Posix;
>


> class IntGenerator : Generator<int> {
>     protected override async void generate () {
>         for (int i=0; i < 10; i++) {
>             if (i%2 ==0) yield feed (i);
>         }
>     }
> }
>
> class IntGenerator_1 : Generator<int> {
>     protected override async void generate () {
>         for (int i=0; i < 10; i++) {
>             if (i%2 !=0) yield feed (i);
>         }
>     }
> }
>
>
> IntGenerator    gen;
> IntGenerator_1  gen_1;
>
> void* thread_func() {
>     //Posix.stdout.printf("Thread running.\n");
>     gen = new IntGenerator();
>     return null;
> }
>
> void* thread_func_1() {
>     //Posix.stdout.printf("Thread running.\n");
>     gen_1 = new IntGenerator_1();
>     return null;
> }
>
>
> int main(string[] args) {
>
>     if (!Thread.supported()) {
>         Posix.stderr.printf("Cannot run without threads.\n");
>         return 1;
>     }
>
>     try {
>         unowned Thread<void*> thread = Thread.create<void*>(thread_func,
> true);
>         thread.join();
>
>         unowned Thread<void*> thread_1 =
> Thread.create<void*>(thread_func_1, true);
>         thread_1.join();
>
>     } catch (ThreadError e) {
>         return 1;
>     }
>
>     print("\n\nResults computed in first thread\n");
>
>     var i=0;
>     foreach (var item in gen) {
>         if (i<10) Posix.stdout.printf("%i\n", item);
>         i++;
>     }
>
>     print("\n\nResults computed in the second thread\n\n");
>
>     i=0;
>     foreach (var item in gen_1) {
>         if (i<10) Posix.stdout.printf("%i\n", item);
>         i++;
>     }
>
>
>     return 0;
> }
> /////////////////////
>
>
>
>
>
>
_______________________________________________
vala-list mailing list
vala-list@gnome.org
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to