Advertisement
Guest User

Untitled

a guest
Apr 21st, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 0.51 KB | None | 0 0
  1. module main;
  2.  
  3.  
  4. import std.stdio;
  5. import std.concurrency;
  6.  
  7. shared struct S(T, uint M)
  8. {
  9.     T[M] x;
  10. }
  11.  
  12. shared struct M
  13. {
  14.     int x;
  15. }
  16.  
  17.  
  18. private void runner(T)()
  19. {
  20.     shared(T)* s = receiveOnly!(shared(T)*)();
  21.     writeln(s.x.length);
  22.     writeln(s.x[0]);
  23.     send(ownerTid, true);
  24. }
  25.  
  26. int main(string[] argv)
  27. {
  28.     alias S!(M, 2) TS;
  29.     alias shared(TS)* PS;
  30.  
  31.     Tid runnerTid = spawn(&runner!(TS));
  32.  
  33.     PS s = new TS;
  34.     s.x[0] = M(42);
  35.     send(runnerTid, s);
  36.  
  37.     bool ok = receiveOnly!bool();
  38.  
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement