示例#1
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldHandleTheWholeWorkloadShebang() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldHandleTheWholeWorkloadShebang()
        {
            // GIVEN
            const int         size       = 1_000;
            const long        bufferTime = 3;
            VerifyingConsumer consumer   = new VerifyingConsumer(size);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.time.Clock clock = org.neo4j.time.Clocks.systemClock();
            Clock clock = Clocks.systemClock();

            System.Func <long>      chunkThreshold = clock.millis;
            System.Predicate <long> safeThreshold  = time => clock.millis() - bufferTime >= time;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final DelayedBuffer<long> buffer = new DelayedBuffer<>(chunkThreshold, safeThreshold, 10, consumer);
            DelayedBuffer <long> buffer      = new DelayedBuffer <long>(chunkThreshold, safeThreshold, 10, consumer);
            MaintenanceThread    maintenance = new MaintenanceThread(buffer, 5);
            Race      adders         = new Race();
            const int numberOfAdders = 20;

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final byte[] offeredIds = new byte[size];
            sbyte[] offeredIds = new sbyte[size];
            for (int i = 0; i < numberOfAdders; i++)
            {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final int finalI = i;
                int finalI = i;
                adders.AddContestant(() =>
                {
                    for (int j = 0; j < size; j++)
                    {
                        if (j % numberOfAdders == finalI)
                        {
                            buffer.Offer(j);
                            offeredIds[j] = 1;
                            parkNanos(MILLISECONDS.toNanos(current().Next(2)));
                        }
                    }
                });
            }

            // WHEN (multi-threaded) offering of ids
            adders.Go();
            // ... ensuring the test is sane itself (did we really offer all these IDs?)
            for (int i = 0; i < size; i++)
            {
                assertEquals("ID " + i, ( sbyte )1, offeredIds[i]);
            }
            maintenance.Halt();
            buffer.Close();

            // THEN
            consumer.AssertHaveOnlySeenRange(0, size - 1);
        }
示例#2
0
 protected void StartMaintenanceThread()
 {
     if (_maintenanceThread != null)
     {
         if (!_maintenanceThread.IsRunning)
         {
             _maintenanceThread.Start();
         }
     }
     else
     {
         _maintenanceThread = new MaintenanceThread(this)
         {
             Interval = _maintThreadSleep
         };
         _maintenanceThread.Start();
     }
 }
示例#3
0
 protected void StartMaintenanceThread()
 {
     if (_maintenanceThread != null)
     {
         if (_maintenanceThread.IsRunning)
         {
             //if(Log.IsErrorEnabled)
             //{
             //    Log.Error(GetLocalizedString("main thread running"));
             //}
         }
         else
         {
             _maintenanceThread.Start();
         }
     }
     else
     {
         _maintenanceThread          = new MaintenanceThread(this);
         _maintenanceThread.Interval = _maintThreadSleep;
         _maintenanceThread.Start();
     }
 }
示例#4
0
        protected void StartMaintenanceThread()
        {
            if(_maintenanceThread != null)
            {

                if(_maintenanceThread.IsRunning)
                {
                    //if(Log.IsErrorEnabled)
                    //{
                    //    Log.Error(GetLocalizedString("main thread running"));
                    //}
                }
                else
                {
                    _maintenanceThread.Start();
                }
            }
            else
            {
                _maintenanceThread = new MaintenanceThread(this);
                _maintenanceThread.Interval = _maintThreadSleep;
                _maintenanceThread.Start();
            }
        }
示例#5
0
        protected void StartMaintenanceThread()
        {
            if (_maintenanceThread != null)
            {

                if (!_maintenanceThread.IsRunning)
                {
                    _maintenanceThread.Start();
                }
            }
            else
            {
                _maintenanceThread = new MaintenanceThread(this) {Interval = _maintThreadSleep};
                _maintenanceThread.Start();
            }
        }