Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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));
            }
        }
Esempio n. 3
0
        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));
            }
        }