blocking_05.gm 585 B

123456789101112131415161718192021222324252627
  1. /*
  2. Basic blocking and signalling #5
  3. */
  4. global blockfunc = function(name)
  5. {
  6. print( name + ", waiting for instruction, sir!" );
  7. signal_received = block("attack", "move", "defend");
  8. if(signal_received == "attack")
  9. {
  10. print(name + " is attacking!");
  11. }
  12. else if (signal_received == "move")
  13. {
  14. print(name + " is moving to position!");
  15. }
  16. else if (signal_received == "defend")
  17. {
  18. print(name + " is defending til the death!");
  19. }
  20. };
  21. thread_1 = thread( blockfunc, "woob" );
  22. thread_2 = thread( blockfunc, "foo" );
  23. sleep(1);
  24. signal("attack", thread_1);
  25. signal("defend", thread_2);