Changeset 976
- Timestamp:
- 5/5/2009 10:14:14 AM (4 years ago)
- File:
-
- 1 edited
-
branches/eraser6/Manager/RemoteExecutor.cs (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eraser6/Manager/RemoteExecutor.cs
r971 r976 110 110 thread.Abort(); 111 111 112 //Acquire all available locks to ensure no more server instances exist, 113 //then destroy the semaphore 114 for (int i = 0; i < maxServerInstances; ++i) 115 serverLock.WaitOne(); 112 //Close all waiting streams 113 lock (servers) 114 foreach (NamedPipeServerStream server in servers) 115 server.Close(); 116 117 //Destroy the semaphore since all server instances have been closed 116 118 serverLock.Close(); 117 118 base.Dispose(disposing); 119 }119 } 120 121 base.Dispose(disposing); 120 122 } 121 123 … … 136 138 PipeOptions.Asynchronous); 137 139 server.BeginWaitForConnection(EndWaitForConnection, server); 140 141 lock (servers) 142 servers.Add(server); 138 143 } 139 144 } … … 248 253 { 249 254 } 255 catch (ObjectDisposedException) 256 { 257 } 250 258 finally 251 259 { 260 lock (servers) 261 servers.Remove(server); 252 262 server.Close(); 253 263 serverLock.Release(); … … 264 274 /// </summary> 265 275 private Semaphore serverLock; 276 277 /// <summary> 278 /// The list storing all available created server instances. 279 /// </summary> 280 private List<NamedPipeServerStream> servers = new List<NamedPipeServerStream>(); 266 281 267 282 /// <summary>
Note: See TracChangeset
for help on using the changeset viewer.
