void IDeserializationCallback.OnDeserialization(object sender) { lock (this) { _wq = new FIFOWaitQueue(); } }
internal FilterStore(SimEnvironment env, int capacity, WaitPolicy getPolicy, WaitPolicy putPolicy, WaitPolicy itemPolicy) : base(env) { _capacity = capacity; _getQueue = WaitQueue.New <GetEvent>(getPolicy, Env); _putQueue = WaitQueue.New <PutEvent>(putPolicy, Env); _itemQueue = WaitQueue.New <T>(itemPolicy, Env); }
internal Container(SimEnvironment env, double capacity, double level, WaitPolicy getPolicy, WaitPolicy putPolicy) : base(env) { _capacity = capacity; Level = level; _getQueue = WaitQueue.New <GetEvent>(getPolicy, Env); _putQueue = WaitQueue.New <PutEvent>(putPolicy, Env); }
/// <summary> /// Creates a <see cref="SynchronousQueue{T}"/> with specified fairness policy. /// </summary> /// <param name="fair"> /// if true, threads contend in FIFO order for access otherwise the order is unspecified. /// </param> public SynchronousQueue(bool fair) { if (fair) { _qlock = new ReentrantLock(true); _waitingProducers = new FifoWaitQueue(); _waitingConsumers = new FifoWaitQueue(); } else { _qlock = new ReentrantLock(); _waitingProducers = new LifoWaitQueue(); _waitingConsumers = new LifoWaitQueue(); } }
/// <summary> /// /// </summary> /// <param name="env"></param> /// <param name="capacity"></param> /// <param name="requestPolicy"></param> internal Resource(SimEnvironment env, int capacity, WaitPolicy requestPolicy) : base(env) { _capacity = capacity; _requestQueue = WaitQueue.New <RequestEvent>(requestPolicy, Env); }