On Thursday, March 7, 2013 10:48 CET, Riccardo Mottola <[email protected]> wrote: > Hi, > > some of you may have noticed that GWorkspace sometimes do not exit at > the first attempt, but at the second. It does not happen on all > computers, but on those where it does, it happens consistently. I and > Sebastian did a "NSLog debugging", my previous attempts with gdb where > unsuccessful. > > in GWorkspace, in applicationShouldTerminate, we have this code: > > > if (fswatcher) { > NSConnection *conn = [(NSDistantObject *)fswatcher connectionForProxy]; > > if ([conn isValid]) { > [nc removeObserver: self > name: NSConnectionDidDieNotification > object: conn]; > [fswatcher unregisterClient: (id <FSWClientProtocol>)self]; > DESTROY (fswatcher); > } > } > > the problematic line is: > [fswatcher unregisterClient: (id <FSWClientProtocol>)self]; > > When this GWS hangs, it hangs because this line does not return. > fswatcher is the daemon object. > > fswatcher will exit with exit() when the last client unregisters and in > this case it is happening, we checked the code-path and also "ps" shows > that it indeed exists. Why does it hang? And why does it hang on certain > machines only?
For me, where it hangs, which is everywhere, I have libobjc2. I don't have a setup around with gcc libobjc, or old gnustep libobjc. What runtimes are you using where it works/doesn't work? Sebastian > > I fear there could be a base problem, when invoking remote objects? > > Riccardo > > _______________________________________________ > Discuss-gnustep mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnustep _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
