diff options
Diffstat (limited to 'csharp/src')
-rw-r--r-- | csharp/src/Ice/ACM.cs | 10 |
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; } |