Quoth Achim Schneider <bars...@web.de>, > Donn Cave <d...@avvanta.com> wrote: > >> I imagine I'm at fault somewhere in this, since I am also responsible >> for the GHC port to Haiku, but just wondering if this suggests an >> obvious course of inquiry to anyone. I assume it's not working as >> intended, as from the documentation I would rather have guessed that >> -thread would be required in this situation. > > Could it be that Haiku is expecting BeOS threads but you give it UNIX > processes? It might be that all threads serving a GUI app must be part > of the same team.
No, I'm not creating any other threads or processes, other than the window thread that's implicitly created by the window API. If it helps, a coarse outline of the API: class W : public BWindow { W(...params...): BWindow(...params...) { ... initialize graphic elements } void MessageReceived(BMessage *msg) { ... respond to event by calling Haskell function // will lead to thread abort if linked -threaded. } }; main thread: W *w = W(...params...); w->Show(); // thread spawned by this member function. I haven't written any code to support the above - BWindow::Show() was provided by the platform. I did of course have to do a lot of hacking around with FFI stuff. The BWindow-derived object stores a table of foreign wrapper pointers to callback functions that take a StablePtr, etc., and I wouldn't know where to start thinking about that works with garbage collection. Donn Cave, d...@avvanta.com _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe