gnustep-dev
[Top][All Lists]
Advanced

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

Re: [Gnustep-cvs] r23144 - in /libs/back/trunk: ChangeLog Source/x11/XGS


From: Richard Frith-Macdonald
Subject: Re: [Gnustep-cvs] r23144 - in /libs/back/trunk: ChangeLog Source/x11/XGServer.m
Date: Fri, 7 Jul 2006 20:04:47 +0100


On 7 Jul 2006, at 19:28, David Ayers wrote:


URL: http://svn.gna.org/viewcvs/gnustep?rev=23144&view=rev
Log:
Shut down cleanly on receipt of SIGTERM

Modified:
    libs/back/trunk/ChangeLog
    libs/back/trunk/Source/x11/XGServer.m

I'm not sure if we should instead add an NSInvocation of terminate: to
the current or even the main run loop. Calling terminate: in the signal handler seems almost a bit more dangerous than killing the process as we don't really know in which state we are when terminate: may start saving
potentially inconsistent data...

Good idea ... while the terminate: method implementation should really be responsible for ensuring that it shuts down cleanly, it's certainly true that a signal could hit a delicate point and cause problems. Probably the only way to be really safe would be to add a mechanism to NSRunLoop to handle this ... such that a signal handler can set some value that the run loop would know how to deal with. Unless the run loop and signal mechanisms cooperate there is always going to be a chance that truing to manipulate the run loop within a signal handler could cause problems.

I'm also considering whether it would be wise to remove the handler
during the handling.

Perhaps blocking SIGTERM rather than just removing the handler would be good?




reply via email to

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