Praful wrote: > I'm writing a GUI that starts a worker thread using Thread.start. The > Cocoa docs say that you should update the GUI using the main thread > only. However, the examples that ship with Leopard, eg SimpleApp, have > a thread that update the GUI from the thread without passing it to the > main thread. When the Cocoa (Objective C) docs talk about threads, I would assume they're referring to operating system threads. Ruby 1.8 threads are not operating system threads - they're implemented within the interpreter. Since all Ruby 1.8 threads are within the same operating system thread, so it's usually safe to call GUI code in any thread. A little bit of care can be needed, because ruby's thread scheduler can potentially switch context in a place where it shouldn't. For example, I've seen Carbon errors on OS X in wxRuby where it appears execution has switched inside an operation like drawing to a device context. alex