From: Marcin Tyman Date: 2007-11-15T18:38:21+09:00 Subject: Thread synchronization Hi guys, I've got issue with this example part of code: stationStatsTr = Thread.new do while(true) puts "stationStatsTr\n" sleep 1 end end rulesTr = Thread.new do while(true) #puts stationStatsTr.status sleep 1 stationStatsTr.stop() if stationStatsTr.status == "run" puts "rulesTr\n" sleep 1 end end stationStatsTr.join(10) rulesTr.join(10) #the output from this is as follows stationStatsTr stationStatsTr stationStatsTr stationStatsTr stationStatsTr stationStatsTr stationStatsTr stationStatsTr stationStatsTr stationStatsTr C:/Documents and Settings/PROXIMETRY/Desktop/Autotests/Fake_DDL/testing.rb:12: undefined method `stop' for # (NoMethodError) from C:/Documents and Settings/PROXIMETRY/Desktop/Autotests/Fake_DDL/testing.rb:22:in `join' from C:/Documents and Settings/PROXIMETRY/Desktop/Autotests/Fake_DDL/testing.rb:22 ##################################################################### REPLACING stationStatsTr.stop() by stationStatsTr.kill works as expected (stationStats is killed and rulesTr is running). But stop() method cannot stop stationStatsTr. Moreover rulesTr doesn't run (as you can see in output) and error occured at the end of script (after set 10 secs in join). What is going on with this. The idea of the part of code is that only one of the threads should run simultaneously. The rulesTr should be able to stop and start staionStatsTr. Any help will be helpful. Thanks in advance, MT -- Posted via http://www.ruby-forum.com/.