internal PipeClientTransportSink(String url) { String objuri = null; String chanuri = PipeConnection.Parse(url, out objuri); DBG.Info(null, "PipeClientTransportSink: creating pipe on uri: " + chanuri); //Console.WriteLine("PipeClientTransportSink {0}", chanuri); _pipeName = chanuri; _pipeConnectionPool = PipeConnectionPoolManager.LookupPool(_pipeName); callback = new WaitCallback(this.ReceiveCallback); }
private static void PipeConnectionPoolManagerCallback(Object state) { DBG.Info(null, "PipeConnectionPoolManagerCallback"); lock (_poolInstances) { foreach (DictionaryEntry entry in _poolInstances) { PipeConnectionPool pool = (PipeConnectionPool)entry.Value; lock (pool) { pool.CloseStaleConnections(); } } } // Requeue timer timer = new Timer(timerDelegate, null, timerDueTime, 0); }
////////////////////////////////////////////////////////////// public static PipeConnectionPool LookupPool(String key) { PipeConnectionPool pool; if (initialized == false) { Init(); } lock (_poolInstances) { pool = (PipeConnectionPool)_poolInstances[key]; if (pool == null) { pool = new PipeConnectionPool(key); _poolInstances[key] = pool; } } return(pool); }
////////////////////////////////////////////////////////////// public static PipeConnectionPool LookupPool(String key) { PipeConnectionPool pool; if (initialized == false) Init(); lock(_poolInstances) { pool = (PipeConnectionPool)_poolInstances[key]; if (pool == null) { pool = new PipeConnectionPool(key); _poolInstances[key] = pool; } } return pool; }