(In reply to jhorak from comment #12)
> I think problem is that nsIAppStartup::Quit have some async calls and
> returns sooner than application is actually quit. The session manager is
> expecting that Firefox quit is finished when it returns from
> nsNativeAppSupportUnix::DieCB method.
>
> We need to wait in nsNativeAppSupportUnix::DieCB until application actually
> finish quitting. Is there something for this in current code?
We don't need to wait in DieCB() until the app has done most of the quit, but I expect SmcCloseConnection() should not be called until later in the shutdown sequence.
Perhaps there is some later message that can be used to close the SM connection.
Perhaps nsINativeAppSupport::Stop() is appropriate. I'm not clear from the docs that Stop() will always be called.
Perhaps reordering the operations in DieCB() to close the SM connection after nsIAppStartup::Quit may be sufficient.
I wonder whether GnomeClient was explicitly closing the connection, or whether is just got closed with the Display connection.
(In reply to jhorak from comment #12) ortUnix: :DieCB method. ortUnix: :DieCB until application actually
> I think problem is that nsIAppStartup::Quit have some async calls and
> returns sooner than application is actually quit. The session manager is
> expecting that Firefox quit is finished when it returns from
> nsNativeAppSupp
>
> We need to wait in nsNativeAppSupp
> finish quitting. Is there something for this in current code?
We don't need to wait in DieCB() until the app has done most of the quit, but I expect SmcCloseConnect ion() should not be called until later in the shutdown sequence.
http:// lesstif. sourceforge. net/doc/ super-ux/ g1ae04e/ chap12. html#12. 4.1.2
Perhaps there is some later message that can be used to close the SM connection. port::Stop( ) is appropriate. I'm not clear from the docs that Stop() will always be called.
Perhaps nsINativeAppSup
Perhaps reordering the operations in DieCB() to close the SM connection after nsIAppStartup::Quit may be sufficient.
I wonder whether GnomeClient was explicitly closing the connection, or whether is just got closed with the Display connection.