Author: rfm
Date: Wed Mar 23 13:19:38 2016
New Revision: 39596

URL: http://svn.gna.org/viewcvs/gnustep?rev=39596&view=rev
Log:
track shutdown duration for each process

Modified:
    libs/ec/trunk/EcClientI.h
    libs/ec/trunk/EcClientI.m
    libs/ec/trunk/EcCommand.m

Modified: libs/ec/trunk/EcClientI.h
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/ec/trunk/EcClientI.h?rev=39596&r1=39595&r2=39596&view=diff
==============================================================================
--- libs/ec/trunk/EcClientI.h   (original)
+++ libs/ec/trunk/EcClientI.h   Wed Mar 23 13:19:38 2016
@@ -50,6 +50,7 @@
   BOOL         pingOk;                 /* Can remote end accept ping?  */
   BOOL         transient;              /* Is this a transient client?  */
   BOOL         unregistered;           /* Has client unregistered?     */
+  BOOL          terminating;            /* Client been asked to quit?   */
   int           processIdentifier;     /* Process ID if known (or 0).  */
 }
 - (NSComparisonResult) compare: (EcClientI*)other;
@@ -68,8 +69,10 @@
 - (void) setName: (NSString*)n;
 - (void) setObj: (id)o;
 - (void) setProcessIdentifier: (int)p;
+- (void) setTerminating: (BOOL)flag;
 - (void) setTransient: (BOOL)flag;
 - (void) setUnregistered: (BOOL)flag;
+- (BOOL) terminating;
 - (BOOL) transient;
 @end
 

Modified: libs/ec/trunk/EcClientI.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/ec/trunk/EcClientI.m?rev=39596&r1=39595&r2=39596&view=diff
==============================================================================
--- libs/ec/trunk/EcClientI.m   (original)
+++ libs/ec/trunk/EcClientI.m   Wed Mar 23 13:19:38 2016
@@ -189,6 +189,22 @@
   processIdentifier = p;
 }
 
+- (void) setTerminating: (BOOL)flag
+{
+  if (flag != terminating)
+    {
+      terminating = flag ? YES : NO;
+      if (YES == terminating)
+        {
+          NSLog(@"Terminating %@", name);
+        }
+      else
+        {
+          NSLog(@"Unregistered %@", name);
+        }
+    }
+}
+
 - (void) setTransient: (BOOL)flag
 {
   transient = flag ? YES : NO;
@@ -196,7 +212,19 @@
 
 - (void) setUnregistered: (BOOL)flag
 {
-  unregistered = flag ? YES : NO;
+  if (flag != unregistered)
+    {
+      unregistered = flag ? YES : NO;
+      if (YES == unregistered)
+        {
+          [self setTerminating: NO];
+        }
+    }
+}
+
+- (BOOL) terminating
+{
+  return terminating;
 }
 
 - (BOOL) transient

Modified: libs/ec/trunk/EcCommand.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/ec/trunk/EcCommand.m?rev=39596&r1=39595&r2=39596&view=diff
==============================================================================
--- libs/ec/trunk/EcCommand.m   (original)
+++ libs/ec/trunk/EcCommand.m   Wed Mar 23 13:19:38 2016
@@ -1134,6 +1134,7 @@
                          m = [m stringByAppendingString:
                            @"  Please wait for this to be 'removed' before "
                            @"proceeding.\n"];
+                          [c setTerminating: YES];
                          [[c obj] cmdQuit: 0];
                          found = YES;
                        }
@@ -1244,6 +1245,7 @@
                          m = [m stringByAppendingFormat: 
                            @"  The process '%@' should restart shortly.\n",
                            [c name]];
+                          [c setTerminating: YES];
                          [[c obj] cmdQuit: 0];
                          found = YES;
                        }
@@ -1532,6 +1534,7 @@
              NSString  *s;
 
              lostClients = YES;
+              [o setUnregistered: YES];
              [clients removeObjectIdenticalTo: o];
              if (i <= pingPosition && pingPosition > 0)
                {
@@ -2157,6 +2160,7 @@
              NS_DURING
                {
                  [launches setObject: [NSDate distantFuture] forKey: n];
+                  [c setTerminating: YES];
                  [[c obj] cmdQuit: 0];
                }
              NS_HANDLER
@@ -2182,7 +2186,7 @@
          for (i = 0; i < [a count] && [clients count] > 0; i++)
            {
              EcClientI *c;
-             NSString          *n;
+             NSString  *n;
 
              n = [a objectAtIndex: i];
              c = [self findIn: clients byName: n];
@@ -2191,6 +2195,7 @@
                  NS_DURING
                    {
                      [launches setObject: [NSDate distantFuture] forKey: n];
+                      [c setTerminating: YES];
                      [[c obj] cmdQuit: 0];
                    }
                  NS_HANDLER
@@ -2386,6 +2391,7 @@
              NS_DURING
                {
                  [launches setObject: when forKey: [c name]];
+                  [c setTerminating: YES];
                  [[c obj] cmdQuit: 0];
                }
              NS_HANDLER
@@ -2423,6 +2429,7 @@
                  NS_DURING
                    {
                       [launches setObject: when forKey: [c name]];
+                      [c setTerminating: YES];
                       [[c obj] cmdQuit: 0];
                    }
                  NS_HANDLER


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to