Exemplo n.º 1
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: public <R extends org.neo4j.kernel.impl.store.record.AbstractBaseRecord> void applyFilteredParallel(final org.neo4j.kernel.impl.store.RecordStore<R> store, final org.neo4j.helpers.progress.ProgressListener progressListener, int numberOfThreads, long recordsPerCpu, final org.neo4j.consistency.checking.full.QueueDistribution_QueueDistributor<R> distributor)
        public virtual void ApplyFilteredParallel <R>(RecordStore <R> store, ProgressListener progressListener, int numberOfThreads, long recordsPerCpu, QueueDistribution_QueueDistributor <R> distributor) where R : Org.Neo4j.Kernel.impl.store.record.AbstractBaseRecord
        {
            CacheAccess.prepareForProcessingOfSingleStore(recordsPerCpu);
            RecordProcessor <R> processor = new RecordProcessor_AdapterAnonymousInnerClass(this, store);

            ResourceIterable <R> scan = scan(store, _stage.Forward);

            using (ResourceIterator <R> records = scan.GetEnumerator())
            {
                distributeRecords(numberOfThreads, this.GetType().Name, _qSize, cloned(records), progressListener, processor, distributor);
            }
        }
Exemplo n.º 2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test void shouldDoProcessingInitializationInOrder() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        internal virtual void ShouldDoProcessingInitializationInOrder()
        {
            // GIVEN
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.test.Race race = new org.neo4j.test.Race();
            Race race = new Race();
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.concurrent.atomic.AtomicInteger coordination = new java.util.concurrent.atomic.AtomicInteger(-1);
            AtomicInteger coordination = new AtomicInteger(-1);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final java.util.concurrent.atomic.AtomicInteger expected = new java.util.concurrent.atomic.AtomicInteger();
            AtomicInteger expected = new AtomicInteger();
            const int     threads  = 30;

//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @SuppressWarnings("unchecked") final RecordCheckWorker<int>[] workers = new RecordCheckWorker[threads];
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
            RecordCheckWorker <int>[] workers = new RecordCheckWorker[threads];
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final RecordProcessor<int> processor = new RecordProcessor_Adapter<int>()
            RecordProcessor <int> processor = new RecordProcessor_AdapterAnonymousInnerClass(this, expected);

            for (int id = 0; id < threads; id++)
            {
                ArrayBlockingQueue <int> queue = new ArrayBlockingQueue <int>(10);
                race.AddContestant(workers[id] = new RecordCheckWorker <int>(id, coordination, queue, processor));
            }
            race.AddContestant(() =>
            {
                try
                {
                    long end = currentTimeMillis() + SECONDS.toMillis(100);
                    while (currentTimeMillis() < end && expected.get() < threads)
                    {
                        parkNanos(MILLISECONDS.toNanos(10));
                    }
                    assertEquals(threads, expected.get());
                }
                finally
                {
                    foreach (RecordCheckWorker <int> worker in workers)
                    {
                        worker.Done();
                    }
                }
            });

            // WHEN
            race.Go();
        }