Пример #1
0
        // Group: Functions
        // __________________________________________________________________________


        /* Constructor: Manager
         */
        public Manager(HTML.Target target) : base(target.EngineInstance)
        {
            this.target    = target;
            accessLock     = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
            changeWatchers = new List <IChangeWatcher>();
            prefixTopicIDs = null;
        }
Пример #2
0
        protected bool show_spo;                        // отображать или нет панель СПО

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        protected SgtApplication()
        {
            c_slim = new System.Threading.ReaderWriterLockSlim();

            works = new List <Work>();

            commutator = new Commutator();
            technology = new Technology();

            db_manager = new DataBaseManager();

            commutator.SaverTechData = technology.SaverTechnologyData;
            //commutator.onUpdated += new CommutatorEventHandler(technology.Calculate);

            technology.onComplete += new EventHandler(technology_onComplete);

            s_panel = new SpoPanel(this);
            d_panel = new DrillingPanel(this);

            sol_panel = new SolutionPanel(this);

            panels = new List <VPanel>();

            show_drilling = true;
            show_solution = true;
            show_spo      = true;
        }
Пример #3
0
        protected IElement parent = null; // родительский элемент

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="panel"></param>
        public ScalePanel(IElement panel)
        {
            parent = panel;
            color = SystemColors.Control;

            sync = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
        }
Пример #4
0
            public ReadLockHelper(ReaderWriterLockSlim readerWriterLock)
            {
                Contract.Requires <ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                readerWriterLock.EnterReadLock();
                this._readerWriterLock = readerWriterLock;
            }
Пример #5
0
            public ReadLockHelper([NotNull] ReaderWriterLockSlim readerWriterLock)
            {
                Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

                readerWriterLock.EnterReadLock();
                this._readerWriterLock = readerWriterLock;
            }
            public ReadLockHelper(ReaderWriterLockSlim readerWriterLock)
            {
                Contract.Requires<ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                readerWriterLock.EnterReadLock();
                this._readerWriterLock = readerWriterLock;
            }
Пример #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CodeColorizer"/> class.
        /// </summary>
        private static void NonInternalCodeColorizer()
        {
            System.Collections.Generic.Dictionary <string, ColorCode.Compilation.CompiledLanguage> compiledLanguages =
                (System.Collections.Generic.Dictionary <string, ColorCode.Compilation.CompiledLanguage>)
                typeof(ColorCode.Languages).GetField("CompiledLanguages", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic)
                .GetValue(null);
            ColorCode.Common.LanguageRepository languageRepository =
                (ColorCode.Common.LanguageRepository) typeof(ColorCode.Languages)
                .GetField("LanguageRepository", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic).GetValue(null);



            System.Threading.ReaderWriterLockSlim compileLock =
                (System.Threading.ReaderWriterLockSlim) typeof(ColorCode.Languages)
                .GetField("CompileLock", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic).GetValue(null);


            //this.
            var languageParser = new ColorCode.Parsing.LanguageParser(
                new ColorCode.Compilation.LanguageCompiler(
                    compiledLanguages, compileLock) // ColorCode.Languages.CompiledLanguages)
                , languageRepository                // ColorCode.Languages.LanguageRepository

                );
        }
Пример #8
0
        protected IElement parent = null;           // родительский элемент

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        /// <param name="panel"></param>
        public ScalePanel(IElement panel)
        {
            parent = panel;
            color  = SystemColors.Control;

            sync = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
        }
Пример #9
0
 /// <summary>
 /// Creates a new graph with its random generator being initialized with a given seed
 /// </summary>
 /// <param name="seed">the seed to init the random generator</param>
 public Network(int seed)
 {
     _random       = new Random(seed);
     _edges        = new Dictionary <Guid, Edge>();
     _vertices     = new Dictionary <Guid, Vertex>();
     _vertexLabels = new Dictionary <string, Vertex>();
     _rwl          = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
 }
Пример #10
0
 /// <summary>
 /// Creates a new graph with its random generator being initialized with the current tick count
 /// </summary>
 public Network()
 {
     _random = new Random();
     _edges = new Dictionary<Guid, Edge>();
     _vertices = new Dictionary<Guid, Vertex>();
     _vertexLabels = new Dictionary<string, Vertex>();
     _rwl = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
 }
Пример #11
0
            public UpgradeableReadLockHelper([NotNull] ReaderWriterLockSlim readerWriterLock)
            {
                Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

                this._readerWriterLock = readerWriterLock;
                this._readonly         = false;
                this._readerWriterLock.EnterUpgradeableReadLock();
            }
Пример #12
0
            public UpgradeableReadLockHelper(ReaderWriterLockSlim readerWriterLock)
            {
                Contract.Requires <ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                this._readerWriterLock = readerWriterLock;
                this._readonly         = false;
                this._readerWriterLock.EnterUpgradeableReadLock();
            }
Пример #13
0
        static StackObject *Ctor_0(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *__ret = ILIntepreter.Minus(__esp, 0);

            var result_of_this_method = new System.Threading.ReaderWriterLockSlim();

            return(ILIntepreter.PushObject(__ret, __mStack, result_of_this_method));
        }
            public ReadLockHelper(ReaderWriterLockSlim readerWriterLock, int millisecondsTimeout)
            {
                Contract.Requires<ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                if (!readerWriterLock.TryEnterReadLock(millisecondsTimeout))
                    throw new TimeoutException();

                this._readerWriterLock = readerWriterLock;
            }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <remarks>
        /// <para>
        /// Initializes a new instance of the <see cref="ReaderWriterLock" /> class.
        /// </para>
        /// </remarks>
        public ReaderWriterLock()
        {
#if HAS_READERWRITERLOCK
#if HAS_READERWRITERLOCKSLIM
            m_lock = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
#else
            m_lock = new System.Threading.ReaderWriterLock();
#endif
#endif
        }
Пример #16
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <remarks>
        /// <para>
        /// Initializes a new instance of the <see cref="ReaderWriterLock" /> class.
        /// </para>
        /// </remarks>
        public ReaderWriterLock()
        {
#if HAS_READERWRITERLOCK
#if HAS_READERWRITERLOCKSLIM
            m_lock = new System.Threading.ReaderWriterLockSlim();
#else
            m_lock = new System.Threading.ReaderWriterLock();
#endif
#endif
        }
Пример #17
0
            public WriteLockHelper(ReaderWriterLockSlim readerWriterLock, int millisecondsTimeout)
            {
                Contract.Requires <ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                if (!readerWriterLock.TryEnterWriteLock(millisecondsTimeout))
                {
                    throw new TimeoutException();
                }

                this._readerWriterLock = readerWriterLock;
            }
Пример #18
0
            public UpgradeableReadLockHelper([NotNull] ReaderWriterLockSlim readerWriterLock, TimeSpan timeout)
            {
                Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

                this._readerWriterLock = readerWriterLock;
                this._readonly         = false;
                if (!this._readerWriterLock.TryEnterUpgradeableReadLock(timeout))
                {
                    throw new TimeoutException();
                }
            }
Пример #19
0
            public ReadLockHelper(ReaderWriterLockSlim readerWriterLock, TimeSpan timeout)
            {
                Contract.Requires <ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                if (!readerWriterLock.TryEnterReadLock(timeout))
                {
                    throw new TimeoutException();
                }

                this._readerWriterLock = readerWriterLock;
            }
Пример #20
0
            public ReadLockHelper([NotNull] ReaderWriterLockSlim readerWriterLock, TimeSpan timeout)
            {
                Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

                if (!readerWriterLock.TryEnterReadLock(timeout))
                {
                    throw new TimeoutException();
                }

                this._readerWriterLock = readerWriterLock;
            }
Пример #21
0
            public WriteLockHelper([NotNull] ReaderWriterLockSlim readerWriterLock, int millisecondsTimeout)
            {
                Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

                if (!readerWriterLock.TryEnterWriteLock(millisecondsTimeout))
                {
                    throw new TimeoutException();
                }

                this._readerWriterLock = readerWriterLock;
            }
Пример #22
0
            public UpgradeableReadLockHelper(ReaderWriterLockSlim readerWriterLock, TimeSpan timeout)
            {
                Contract.Requires <ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                this._readerWriterLock = readerWriterLock;
                this._readonly         = false;
                if (!this._readerWriterLock.TryEnterUpgradeableReadLock(timeout))
                {
                    throw new TimeoutException();
                }
            }
Пример #23
0
 public static void WriteLocked(this System.Threading.ReaderWriterLockSlim rwl, Action act)
 {
     try
     {
         rwl.EnterWriteLock( );
         act( );
     }
     finally
     {
         rwl.ExitWriteLock( );
     }
 }
Пример #24
0
 public static void RunWriteLocked(Action act, System.Threading.ReaderWriterLockSlim oLock)
 {
     oLock.EnterWriteLock( );
     try
     {
         act( );
     }
     finally
     {
         oLock.ExitWriteLock( );
     }
 }
Пример #25
0
 public static T RunWriteLocked <T> (Func <T> act, System.Threading.ReaderWriterLockSlim oLock)
 {
     oLock.EnterWriteLock( );
     try
     {
         return(act( ));
     }
     finally
     {
         oLock.ExitWriteLock( );
     }
 }
Пример #26
0
        static StackObject *ExitUpgradeableReadLock_3(ILIntepreter __intp, StackObject *__esp, IList <object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject *ptr_of_this_method;
            StackObject *__ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.Threading.ReaderWriterLockSlim instance_of_this_method = (System.Threading.ReaderWriterLockSlim) typeof(System.Threading.ReaderWriterLockSlim).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags) 0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.ExitUpgradeableReadLock();

            return(__ret);
        }
Пример #27
0
        public EthernetController(AltoSystem system)
        {
            _system = system;

            _receiverLock = new System.Threading.ReaderWriterLockSlim();

            _fifo = new Queue <ushort>();

            _fifoTransmitWakeupEvent = new Event(_fifoTransmitDuration, null, OutputFifoCallback);

            // Attach real Ethernet device if user has specified one, otherwise leave unattached; output data
            // will go into a bit-bucket.
            try
            {
                switch (Configuration.HostPacketInterfaceType)
                {
                case PacketInterfaceType.UDPEncapsulation:
                    _hostInterface = new UDPEncapsulation(Configuration.HostPacketInterfaceName);
                    _hostInterface.RegisterReceiveCallback(OnHostPacketReceived);
                    break;

                case PacketInterfaceType.EthernetEncapsulation:
                    _hostInterface = new HostEthernetEncapsulation(Configuration.HostPacketInterfaceName);
                    _hostInterface.RegisterReceiveCallback(OnHostPacketReceived);
                    break;

                default:
                    _hostInterface = null;
                    break;
                }
            }
            catch (Exception e)
            {
                _hostInterface = null;
                Log.Write(LogComponent.HostNetworkInterface, "Unable to configure network interface.  Error {0}", e.Message);
            }

            // More words than the Alto will ever send.
            _outputData = new ushort[4096];

            _nextPackets = new Queue <MemoryStream>();

            _inputPollEvent = new Event(_inputPollPeriod, null, InputHandler);

            Reset();
        }
Пример #28
0
        static void CreateWatchdog(ConfigurationManager configurationManager, IServer server)
        {
            using (var aliveLock = new System.Threading.ReaderWriterLockSlim()) {
                bool alive = false;

                // On a new connection try to set alive to true
                // If we can't then don't bother, it's not needed
                server.RequestReceived += (sender, e) =>
                                          TryRunLocked(
                    () => aliveLock.TryEnterWriteLock(0),
                    () => alive = true,
                    aliveLock.ExitWriteLock
                    );

                var pluto = new Watchdog(configurationManager.IdleTime * 1000);
                pluto.End += (sender, e) => {
                    Logger.Write(LogLevel.Debug, "The dog bit!");
                    server.Stop();
                    Logger.Write(LogLevel.Debug, "Server stopped.");
                    Logger.Write(LogLevel.Debug, "Goodbye!");
                    Environment.Exit(0);
                };

                // Check every second for hearthbeats
                var t = new Timer(1000);
                t.Elapsed += (sender, e) =>
                             RunLocked(
                    aliveLock.EnterUpgradeableReadLock,
                    () => {
                    if (!alive)
                    {
                        return;
                    }
                    RunLocked(
                        aliveLock.EnterWriteLock,
                        () => alive = false,
                        aliveLock.ExitWriteLock
                        );
                    pluto.Kick();
                },
                    aliveLock.ExitUpgradeableReadLock
                    );
                t.Start();
            }
        }
        private void testToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Threading.ReaderWriterLockSlim rw = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
            LockDisposable l = new LockDisposable(rw);
            int            c = 0;
            const int      r = 1000000;
            StringBuilder  s = new StringBuilder();
            DateTime       p;

            for (int j = 0; j < 3; j++)
            {
                p = DateTime.Now;
                for (int i = 0; i < r; i++)
                {
                    c++;
                }
                s.AppendLine(((DateTime.Now.Ticks - p.Ticks) / 1000).ToString());
                p = DateTime.Now;
                for (int i = 0; i < r; i++)
                {
                    lock (rw) {
                        c++;
                    }
                }
                s.AppendLine(((DateTime.Now.Ticks - p.Ticks) / 1000).ToString());
                p = DateTime.Now;
                for (int i = 0; i < r; i++)
                {
                    rw.EnterReadLock();
                    try {
                        c++;
                    } finally { rw.ExitReadLock(); }
                }
                s.AppendLine(((DateTime.Now.Ticks - p.Ticks) / 1000).ToString());
                p = DateTime.Now;
                for (int i = 0; i < r; i++)
                {
                    using (l.GetReadLock()) {
                        c++;
                    }
                }
                s.AppendLine(((DateTime.Now.Ticks - p.Ticks) / 1000).ToString());
            }
            MessageBox.Show(s.ToString());
        }
Пример #30
0
        private void TEST_12()
        {
            SpeedStatistic.StartCounter("START ALL");
            for (int i = 0; i < 1000000; i++)    //3 ms empty loop
            {
                //try
                //{  //3 ms with try-catch
                //}
                //catch (Exception ex)
                //{
                //    Console.WriteLine(ex.ToString());
                //}

                //using (var tran = engine.GetTransaction())        //5820 ms with and without try-catch
                //{

                //}

                DBreeze.Diagnostic.SpeedStatistic.StartCounter("GET");
                //DbReaderWriterLock _sync_transactionWriteTables = new DbReaderWriterLock();
                System.Threading.ReaderWriterLockSlim rwls = new System.Threading.ReaderWriterLockSlim();
                //DBreeze.Transactions.TransactionUnit1 transactionUnit = new DBreeze.Transactions.TransactionUnit1(null);

                //var tran = engine.GetTransaction();
                DBreeze.Diagnostic.SpeedStatistic.StopCounter("GET");

                //DBreeze.Diagnostic.SpeedStatistic.StartCounter("UNREGISTER1");
                ////tran.Dispose();
                //DBreeze.Diagnostic.SpeedStatistic.StopCounter("UNREGISTER1");
            }
            //SpeedStatistic.PrintOut("START ALL",true);


            SpeedStatistic.PrintOut();
            SpeedStatistic.ClearAll();
        }
Пример #31
0
        public static WriteLockHelper WriteLock([NotNull] this ReaderWriterLockSlim readerWriterLock, int millisecondsTimeout)
        {
            Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

            return(new WriteLockHelper(readerWriterLock, millisecondsTimeout));
        }
Пример #32
0
        static void CreateWatchdog(ConfigurationManager configurationManager, IServer server)
        {
            using (var aliveLock = new System.Threading.ReaderWriterLockSlim ()) {
                bool alive = false;

                // On a new connection try to set alive to true
                // If we can't then don't bother, it's not needed
                server.RequestReceived += (sender, e) =>
                    TryRunLocked (
                    () => aliveLock.TryEnterWriteLock (0),
                    () => alive = true,
                    aliveLock.ExitWriteLock
                );

                var pluto = new Watchdog (configurationManager.IdleTime * 1000);
                pluto.End += (sender, e) => {
                    Logger.Write (LogLevel.Debug, "The dog bit!");
                    server.Stop ();
                    Logger.Write (LogLevel.Debug, "Server stopped.");
                    Logger.Write (LogLevel.Debug, "Goodbye!");
                    Environment.Exit (0);
                };

                // Check every second for hearthbeats
                var t = new Timer (1000);
                t.Elapsed += (sender, e) =>
                    RunLocked (
                    aliveLock.EnterUpgradeableReadLock,
                    () => {
                        if (!alive)
                            return;
                        RunLocked (
                            aliveLock.EnterWriteLock,
                            () => alive = false,
                            aliveLock.ExitWriteLock
                        );
                        pluto.Kick ();
                    },
                    aliveLock.ExitUpgradeableReadLock
                );
                t.Start ();
            }
        }
            public WriteLockHelper(ReaderWriterLockSlim readerWriterLock, TimeSpan timeout)
            {
                Contract.Requires<ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                if (!readerWriterLock.TryEnterWriteLock(timeout))
                    throw new TimeoutException();

                this._readerWriterLock = readerWriterLock;
            }
            public UpgradeableReadLockHelper(ReaderWriterLockSlim readerWriterLock, TimeSpan timeout)
            {
                Contract.Requires<ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                this._readerWriterLock = readerWriterLock;
                this._readonly = false;
                if (!this._readerWriterLock.TryEnterUpgradeableReadLock(timeout))
                    throw new TimeoutException();
            }
            public UpgradeableReadLockHelper(ReaderWriterLockSlim readerWriterLock)
            {
                Contract.Requires<ArgumentNullException>(readerWriterLock != null, "readerWriterLock");

                this._readerWriterLock = readerWriterLock;
                this._readonly = false;
                this._readerWriterLock.EnterUpgradeableReadLock();
            }
Пример #36
0
 public MemCache(int expireMilliseconds = 6000000, int checkIntervalMilliseconds = 3000000)
 {
     _syncObject = new System.Threading.ReaderWriterLockSlim();
     _expireMilliseconds = expireMilliseconds<=0? 6000000: expireMilliseconds;
     _checkIntervalMilliseconds = checkIntervalMilliseconds<=0? 3000000: checkIntervalMilliseconds;
 }
Пример #37
0
 private MemCache(MemCache parent) {
     this.Parent = parent;
     this._syncObject = parent._syncObject;
 }
Пример #38
0
        public static ReadLockHelper ReadLock([NotNull] this ReaderWriterLockSlim readerWriterLock)
        {
            Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

            return(new ReadLockHelper(readerWriterLock));
        }
Пример #39
0
 public SRWLockHelper()
 {
     locktype = new System.Threading.ReaderWriterLockSlim(System.Threading.LockRecursionPolicy.SupportsRecursion);
 }
Пример #40
0
		/// <summary>
		/// 释放非托管资源。
		/// </summary>
		/// <param name="disposing"><b>true</b> 同时释放托管和非托管资源; <b>false</b> 只释放非托管资源。</param>
		protected virtual void Dispose(bool disposing)
		{
			if (!this.disposed)
			{
				if (disposing)
				{
					if (this.configFileChangedEventHandler != null)
					{
						this.ConfigService.ConfigFileChanged -= this.configFileChangedEventHandler;
						this.configFileChangedEventHandler = null;
					}

					if (this.localDataCacheFactory != null)
					{
						this.localDataCacheFactory.Dispose();
						this.localDataCacheFactory = null;
					}

					if (this.dataCacheFactory != null)
					{
						this.dataCacheFactory.Dispose();
						this.dataCacheFactory = null;
					}

					this.lock4distributeCaches.Dispose();
					this.lock4distributeCaches = null;

					if (this.distributeCaches != null)
					{
						this.distributeCaches.Clear();
						this.distributeCaches = null;
					}
				}
			}
			this.disposed = true;
		}
Пример #41
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ConcurrentTokenizedLinkedList{TKey, TValue}"/> class.
 /// </summary>
 public ConcurrentTokenizedLinkedList()
 {
     _list       = new LinkedList <Tuple <TKey, TValue> >();
     _dictionary = new Dictionary <TKey, LinkedListNode <Tuple <TKey, TValue> > >();
     _lock       = new System.Threading.ReaderWriterLockSlim();
 }
Пример #42
0
        public static WriteLockHelper WriteLock([NotNull] this ReaderWriterLockSlim readerWriterLock, TimeSpan timeout)
        {
            Requires.NotNull(readerWriterLock, nameof(readerWriterLock));

            return(new WriteLockHelper(readerWriterLock, timeout));
        }
Пример #43
0
        private TimeSpan tInterval = new TimeSpan(0, 0, 0, 15, 0); // время тишины для проигрывания файла

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Инициализирует новый экземпляр класса
        /// </summary>
        protected SgtApplication()
        {
            c_slim = new System.Threading.ReaderWriterLockSlim();

            works = new List<Work>();

            commutator = new Commutator();
            technology = new Technology();

            db_manager = new DataBaseManager();

            commutator.SaverTechData = technology.SaverTechnologyData;
            //commutator.onUpdated += new CommutatorEventHandler(technology.Calculate);

            technology.onComplete += new EventHandler(technology_onComplete);

            s_panel = new SpoPanel(this);
            d_panel = new DrillingPanel(this);

            sol_panel = new SolutionPanel(this);

            panels = new List<VPanel>();

            show_drilling = true;
            show_solution = true;
            show_spo = true;
        }