Futurism lib (futures in D)
    Kevin Bealer 
    kevinbealer at gmail.com
       
    Sun Jan 21 06:29:23 PST 2007
    
    
  
Sorry - the last post got posted early due to an errant keystroke.  The code
should look like this:
> int main()
> {
>     // Create a pool of 5 threads
>     ThreadPool P = new ThreadPool(5);
>     scope(exit) P.stop;
>
>     alias Future!(char[]) FVec;
>     char[] a = args[1], b = args[2], c = args[3];
>
>     // Starting reading two files at once:
>     FVec f1 = new FVec({ return cast(char[]) read(a); });
>     FVec f2 = new FVec({ return cast(char[]) read(b); });
>
>     // You can do other stuff here if you like
>     writefln("files are being read");
>
>     // This line will wait for both files to be read.
>     int total_length = f1.value.length + f2.value.length;
>     writefln("total length is %s", f1.value.length + );
>
>     return 0;
> }
It took me a bit longer than I expected, when I accidentally did this:
dmd -of~/somefile ...
And ended up with directory called "~".  Naturally I did "rm -rvf ~".
There wasn't much else in my home directory right now (new computer), but I was
able to recover the source for this stuff using "strings < /dev/hda5" and some
elaborate "grep" commands.
Try it out if you like, let me know if it has bugs or missing features.
Thanks,
Kevin
    
    
More information about the Digitalmars-d-announce
mailing list