Example #1
0
        protected override void Process()
        {
            UpdateLog("Loading");
            Log = "";

            IO.PCD_Importer Importer = new IO.PCD_Importer();
            try
            {
                RWL.AcquireWriterLock(100);
                try
                {
                    Importer.Import(Path, out Cloud, Intensity);
                }
                finally
                {
                    RWL.ReleaseWriterLock();
                }
            }
            catch (Exception)
            {
                UpdateLog("Error.");
            }

            Log += Importer.log;

            base.Process();
        }
Example #2
0
 public virtual void Leave(Presence sender)
 {
     try
     {
         RWL.AcquireWriterLock(50);
         Values.Remove(sender.Token);
     }
     finally
     {
         RWL.ReleaseWriterLock();
     }
 }
Example #3
0
 public virtual void Join(Presence sender)
 {
     try
     {
         RWL.AcquireWriterLock(50);
         Values[sender.Token] = sender;
     }
     finally
     {
         RWL.ReleaseWriterLock();
     }
 }
Example #4
0
        public bool TryGet(long key, out Match val)
        {
            try
            {
                RWL.AcquireReaderLock(500);

                return(Matches.TryGetValue(key, out val));
            }
            finally
            {
                RWL.ReleaseReaderLock();
            }
        }
Example #5
0
        public void Pop(long key)
        {
            try
            {
                RWL.AcquireReaderLock(1000); // this is already too long but who cares ?

                Matches.Remove(key);
            }
            finally
            {
                RWL.ReleaseReaderLock();
            }
        }
Example #6
0
        public void Push(Match val)
        {
            try
            {
                RWL.AcquireReaderLock(1000); // this is already too long but who cares ?

                val.MatchId = Matches.Count;
                Matches.Add(val.MatchId, val);
            }
            finally
            {
                RWL.ReleaseReaderLock();
            }
        }
Example #7
0
            protected override void Run()
            {
                while (true)
                {
                    using (RWL.AcquireReaderLock()) {
                        Console.WriteLine("<| " + base.ToString() + " is reading");
                        Thread.Sleep(3000);

                        Console.WriteLine(" |>" + base.ToString() + " has finished reading!");
                    }

                    // Thread.Sleep (1000);
                }
            }
Example #8
0
        public bool TryGet(string userName, out Presence pr)
        {
            try
            {
                RWL.AcquireReaderLock(500);

                pr = Values.FirstOrDefault(_pr => _pr.Value.User.UserName == userName).Value;
                return(pr != null);
            }
            finally
            {
                RWL.ReleaseReaderLock();
            }
        }
Example #9
0
        public void Push(IPacket packet, Presence skip = null)
        {
            try
            {
                RWL.AcquireReaderLock(1000); // this is already too long but who cares ?

                foreach (var pr in Values.Where(pr => pr.Value != skip))
                {
                    pr.Value.Push(packet);
                }
            }
            finally
            {
                RWL.ReleaseReaderLock();
            }
        }