On 8/8/08, Bryan Richardson <btrichardson / gmail.com> wrote: >>> I'm looking for a way to implement a non-threaded timeout > Also, the Ruby interface I've developed for accessing the > external application via the OLE interface has been designed as a > Singleton and I don't know how well that would work with threads... > without a lot of work synchronizing things and such. > I'm probably very confused, but isn't the the OLE interface asynchronous already? Aren't you already waiting until it is done? The following example runs excel until I close it from the menu, or 30 seconds, whichever comes first. I'd think you could apply the same thing to your app, especially if your simulation closes itself. -Adam ------------------------------------------------------------------------------------- excel = WIN32OLE.new("excel.application") excel['Visible'] = TRUE; t = Time.now while ((Time.now - t) < IT_SHOULD_NEVER_RUN_THIS_LONG) break if !excel.Visible #using Visible to check if it is running #there is probably a better test. sleep(1) end excel.Quit();