Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
20
Task/Synchronous-concurrency/D/synchronous-concurrency.d
Normal file
20
Task/Synchronous-concurrency/D/synchronous-concurrency.d
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import std.algorithm, std.concurrency, std.stdio;
|
||||
|
||||
void main() {
|
||||
auto printer = spawn(&printTask, thisTid);
|
||||
auto f = File("input.txt","r");
|
||||
foreach (string line; lines(f))
|
||||
send(printer, line);
|
||||
send(printer, true); //EOF
|
||||
auto n = receiveOnly!(int)();
|
||||
stdout.writefln("\n%d lines printed.", n);
|
||||
}
|
||||
|
||||
void printTask(Tid reader) {
|
||||
int n = 0;
|
||||
for (bool eof = false; !eof;)
|
||||
receive(
|
||||
(string line) {stdout.write(line); n++;},
|
||||
(bool) {send(reader, n); eof = true;}
|
||||
);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue