thread-safety tweak

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/ec/trunk@38202 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2014-11-26 08:59:50 +00:00
parent ed1effdcdc
commit 897608cdb0
2 changed files with 32 additions and 15 deletions

View file

@ -1,3 +1,8 @@
2014-11-26 Richard Frith-Macdonald <rfm@gnu.org>
* EcProcess.m: Make -cmdLastIP, -cmdLastOP (and their setters)
thread-safe.
2014-11-02 Richard Frith-Macdonald <rfm@gnu.org> 2014-11-02 Richard Frith-Macdonald <rfm@gnu.org>
* EcProcess.h: * EcProcess.h:

View file

@ -132,8 +132,8 @@ static NSString *cmdDebugName = nil;
static NSMutableDictionary *cmdLogMap = nil; static NSMutableDictionary *cmdLogMap = nil;
static NSDate *started = nil; /* Time object was created. */ static NSDate *started = nil; /* Time object was created. */
static NSDate *lastIP = nil; /* Time of last input to object. */ static NSTimeInterval lastIP = 0.0; /* Time of last input to object. */
static NSDate *lastOP = nil; /* Time of last output by object. */ static NSTimeInterval lastOP = 0.0; /* Time of last output by object. */
static Class cDateClass = 0; static Class cDateClass = 0;
static Class dateClass = 0; static Class dateClass = 0;
@ -1021,8 +1021,6 @@ findMode(NSDictionary* d, NSString* s)
DESTROY(errorLogger); DESTROY(errorLogger);
DESTROY(homeDir); DESTROY(homeDir);
DESTROY(hostName); DESTROY(hostName);
DESTROY(lastIP);
DESTROY(lastOP);
DESTROY(noNetConfig); DESTROY(noNetConfig);
DESTROY(replyBuffer); DESTROY(replyBuffer);
DESTROY(servers); DESTROY(servers);
@ -1363,12 +1361,20 @@ static NSString *noFiles = @"No log files to archive";
- (NSDate*) cmdLastIP - (NSDate*) cmdLastIP
{ {
return lastIP; if (0.0 == lastIP)
{
return nil;
}
return [dateClass dateWithTimeIntervalSinceReferenceDate: lastIP];
} }
- (NSDate*) cmdLastOP - (NSDate*) cmdLastOP
{ {
return lastOP; if (0.0 == lastOP)
{
return nil;
}
return [dateClass dateWithTimeIntervalSinceReferenceDate: lastOP];
} }
- (void) cmdLogEnd: (NSString*)name - (void) cmdLogEnd: (NSString*)name
@ -2396,20 +2402,26 @@ NSLog(@"Ignored attempt to set timer interval to %g ... using 10.0", interval);
- (void) ecHadIP: (NSDate*)when - (void) ecHadIP: (NSDate*)when
{ {
if (when == nil) if (nil == when)
{ {
when = [dateClass date]; lastIP = [dateClass timeIntervalSinceReferenceDate];
}
else
{
lastIP = [when timeIntervalSinceReferenceDate];
} }
ASSIGN(lastIP, when);
} }
- (void) ecHadOP: (NSDate*)when - (void) ecHadOP: (NSDate*)when
{ {
if (when == nil) if (nil == when)
{ {
when = [dateClass date]; lastOP = [dateClass timeIntervalSinceReferenceDate];
}
else
{
lastOP = [when timeIntervalSinceReferenceDate];
} }
ASSIGN(lastOP, when);
} }
- (NSUInteger) ecNotLeaked - (NSUInteger) ecNotLeaked
@ -3340,11 +3352,11 @@ NSLog(@"Ignored attempt to set timer interval to %g ... using 10.0", interval);
{ {
[self cmdPrintf: @"\n%@ on %@ running since %@\n", [self cmdPrintf: @"\n%@ on %@ running since %@\n",
cmdLogName(), ecHostName(), [self ecStarted]]; cmdLogName(), ecHostName(), [self ecStarted]];
if ([self cmdLastIP] != nil) if (lastIP > 0.0)
{ {
[self cmdPrintf: @"Last IP at %@\n", [self cmdLastIP]]; [self cmdPrintf: @"Last IP at %@\n", [self cmdLastIP]];
} }
if ([self cmdLastOP] != nil) if (lastOP > 0.0)
{ {
[self cmdPrintf: @"Last OP at %@\n", [self cmdLastOP]]; [self cmdPrintf: @"Last OP at %@\n", [self cmdLastOP]];
} }