summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CSharp/Ivy/IvyPPC/IvyClient.cs8
1 files changed, 7 insertions, 1 deletions
diff --git a/CSharp/Ivy/IvyPPC/IvyClient.cs b/CSharp/Ivy/IvyPPC/IvyClient.cs
index 006b69c..faddee4 100644
--- a/CSharp/Ivy/IvyPPC/IvyClient.cs
+++ b/CSharp/Ivy/IvyPPC/IvyClient.cs
@@ -134,6 +134,7 @@ namespace IvyBus
private Hashtable regexp_text;
private int appPort;
private bool peerCalling;
+ private volatile bool running = false;
private volatile Thread clientThread; // volatile to ensure the quick communication
private Int32 clientKey;
private static bool doping = (ConfigurationSettings.AppSettings["IVY_PING"] != null);
@@ -257,6 +258,11 @@ namespace IvyBus
// we can be summoned to quit from two path at a time
clientThread = null;
t.Interrupt();
+ // Tell newThread to go to sleep.
+ running = false;
+ // Wait for newThread to end.
+ t.Join();
+
}
/// <summary> compares two peers the id is the couple (host,service port).
@@ -332,7 +338,7 @@ namespace IvyBus
traceDebug("normally Disconnected from " + appName);
traceDebug("Thread stopped");
// first, I'm not a first class IvyClient any more
- //bus.removeClient(this);
+ // bus.removeClient(this);
// invokes the Disconnected applicationListeners
bus.FireClientDisconnected(this);
}