depend.ncd 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. process main {
  2. var("hello") x;
  3. provide("A");
  4. depend("A") d;
  5. val_equal(d.x, "hello") a;
  6. assert(a);
  7. d.x->set("world");
  8. val_equal(d.x, "world") a;
  9. assert(a);
  10. var("hello") x;
  11. provide("B");
  12. val_equal(x, "world") a;
  13. assert(a);
  14. var("hello") x;
  15. provide("C");
  16. val_equal(x, "hello") a;
  17. assert(a);
  18. depend("C_done");
  19. val_equal(x, "world") a;
  20. assert(a);
  21. var("hello") x;
  22. blocker() blk;
  23. provide("D");
  24. val_equal(x, "hello") a;
  25. assert(a);
  26. blk->up();
  27. val_equal(x, "0") a;
  28. assert(a);
  29. blk->down();
  30. blk->up();
  31. val_equal(x, "1") a;
  32. assert(a);
  33. exit("0");
  34. }
  35. process proc1 {
  36. depend("B") dep;
  37. dep.x->set("world");
  38. }
  39. process proc2 {
  40. depend("C") dep;
  41. sleep("0", "0");
  42. dep.x->set("world");
  43. provide("C_done");
  44. }
  45. process proc3 {
  46. depend("D") dep;
  47. dep.blk->use();
  48. provide("E");
  49. }
  50. process proc4 {
  51. var("0") i;
  52. depend("E") dep;
  53. dep.dep.x->set(i);
  54. num_add(i, "1") j;
  55. i->set(j);
  56. }