summaryrefslogtreecommitdiff
path: root/csharp/src
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/src')
-rw-r--r--csharp/src/Ice/ACM.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/csharp/src/Ice/ACM.cs b/csharp/src/Ice/ACM.cs
index eb262b1e0da..bfe4417d03a 100644
--- a/csharp/src/Ice/ACM.cs
+++ b/csharp/src/Ice/ACM.cs
@@ -109,6 +109,14 @@ namespace IceInternal
{
if(_instance == null)
{
+ //
+ // Ensure all the connections have been cleared, it's important to wait here
+ // to prevent the timer destruction in IceInternal::Instance::destroy.
+ //
+ while(_connections.Count > 0)
+ {
+ System.Threading.Monitor.Wait(this);
+ }
return;
}
@@ -228,7 +236,7 @@ namespace IceInternal
if(_instance == null)
{
_connections.Clear();
- System.Threading.Monitor.Pulse(this);
+ System.Threading.Monitor.PulseAll(this);
return;
}