I'm having the same problem with the latest version of god. Is there a solution to this?
On Dec 12 2008, 7:39 am, gordoncww <[email protected]> wrote: > I believe this is unintentional. Ive invesitagted it a bit, since I > use god at work. Here's what I've found so far: > > First off, the restart command still works, which should satisfy most > needs. Stop last worked in 7.8. So, if you must have both > transitions and the stop command, use that version. > > `gem install god -v 0.7.8` > > If you're interested in the god code, read on. > > The issue starts with the stop command sending two messages to the > watch, :unmonitor and :stop. > > The short version is, the :stop DriverOperation is getting deleted > from the DriverEventQueue when the :unmonitor event is processed > (spefically by `self.driver.clear_events` in Task.move()). > > Here's the long version, thread A calls unmonitor on the watch. Since > its a different thread than `watch.driver.thread` it adds an event to > the watch.driver's queue and moves on to action(:stop). Here it's > basically the same flow, thread A != watch.driver.thread, so it adds > an event to watch.driver's queue and moves on. In the meantime, > thread B, the drivers.thread, kicks in and starts to process its > queue. It starts with :unmonitor. This results in a task.move > (:unmonitor) which calls driver.clear_events and removes the :stop > event before it can be handled. > > (Side note) When creating a test for this, make sure thread A lives > longer than thread B. If it doesn't thread B stops in it's tracks and > you get false negatives. Had a nice hour-long wild goose chase b/c of > this ; ) > > My analysis so far is: > > We can't just remove the clear_events line. For one thing the `tries` > condition relys on this line to stop it from rescheduling after a > successful move. I don't know if other conditions do. > > I'm investigating whether we can draw the distinction between > DriverEvents, which handle polling conditions, and DriverOperations, > which send messages to tasks. Perhaps we would only clear > DriverEvents? > > Tom, if you have time, I'd love to talk to you about it. I'd like to > make sure I have the right understanding of the components before > doing any major rewiring. > > On Dec 8, 4:58 am, Garry Tan <[email protected]> wrote: > > > This is precisely what is happening to me as well. > > > Remains a problem in the latest stable distribution builds from what I > > can tell. w.stop is ignored entirely. Is this by design? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "god.rb" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/god-rb?hl=en -~----------~----~----~----~------~----~------~--~---
