discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GWorkspace hangs on first exit attempt. Remote objects problem?


From: Riccardo Mottola
Subject: GWorkspace hangs on first exit attempt. Remote objects problem?
Date: Thu, 07 Mar 2013 10:48:03 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.11) Gecko/20121123 Icedove/10.0.11

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?

I fear there could be a base problem, when invoking remote objects?

Riccardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]