cleanup on exit

This commit is contained in:
rfm 2024-11-25 12:05:40 +00:00
parent 5302dc715f
commit f0fdebc5b8

View file

@ -725,7 +725,16 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
- (oneway void) cmdQuit: (NSInteger)status - (oneway void) cmdQuit: (NSInteger)status
{ {
[sink setMonitor: nil];
if (alerter)
{
[alerter shutdown];
NSLog(@"Uninstalled alerter: %@",
NSStringFromClass([alerter class]));
DESTROY(alerter);
}
[sink shutdown]; [sink shutdown];
DESTROY(sink);
exit (status); exit (status);
} }
@ -1512,15 +1521,7 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
wd = cmdWord(cmd, 1); wd = cmdWord(cmd, 1);
if ([wd length] > 0 && comp(wd, @"self") == 0) if ([wd length] > 0 && comp(wd, @"self") == 0)
{ {
[sink setMonitor: nil]; [self cmdQuit: 0];
if (alerter)
{
[alerter shutdown];
NSLog(@"Uninstalled alerter: %@",
NSStringFromClass([alerter class]));
DESTROY(alerter);
}
exit(0);
} }
} }
else if (matchCmd(wd, @"restart", allow)) else if (matchCmd(wd, @"restart", allow))
@ -1534,7 +1535,7 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
type: LT_CONSOLE type: LT_CONSOLE
to: nil to: nil
from: nil]; from: nil];
exit(-1); // Watcher should restart us [self cmdQuit: -1]; // Watcher should restart us
} }
else else
{ {
@ -2182,6 +2183,14 @@ static NSString* cmdWord(NSArray* a, unsigned int pos)
result = [super ecRun]; result = [super ecRun];
[sink setMonitor: nil];
if (alerter)
{
[alerter shutdown];
NSLog(@"Uninstalled alerter: %@",
NSStringFromClass([alerter class]));
DESTROY(alerter);
}
[sink shutdown]; [sink shutdown];
DESTROY(sink); DESTROY(sink);