private void OnIdleElapsed(object sender, ElapsedEventArgs e) { var current = DateTime.UtcNow; int idle = 0; using (var @lock = new MonitorLockScope(m_syncRoot, m_idleLockTimeout)) { if (@lock.Aquired) { idle = RecycleIdled(current); } else { if (g_traceInfo.IsInfoEnabled) { TraceHelper.TraceInfo(g_traceInfo, "{0} - Failed to obtain lock on idle elapsed", Inner.Name); } } } if (idle > 0 && g_traceInfo.IsInfoEnabled) { TraceHelper.TraceInfo(g_traceInfo, "{0} - Recycled {1}", Inner.Name, idle); } m_idleTimer.Start(); }
public override T Take(object state) { using (var @lock = new MonitorLockScope(SyncRoot, AccessTimeout)) { if ([email protected]) { if (g_traceInfo.IsWarningEnabled) { TraceHelper.TraceWarning(g_traceInfo, "{0} - Take timed out", Name); } return(default(T)); } return(Inner.Take(state)); } }
public override bool Return(T item) { using (var @lock = new MonitorLockScope(SyncRoot, AccessTimeout)) { if ([email protected]) { if (g_traceInfo.IsWarningEnabled) { TraceHelper.TraceWarning(g_traceInfo, "{0} - Return timed out", Name); } return(false); } return(Inner.Return(item)); } }