public virtual void SetUp()
 {
     _jobExecutor =
         (ControllableJobExecutor)
         ((ProcessEngineConfigurationImpl)_engineRule.ProcessEngine.ProcessEngineConfiguration).JobExecutor;
     _jobExecutor.MaxJobsPerAcquisition = 2;
     _acquisitionThread = _jobExecutor.AcquisitionThreadControl;
     executionThread    = _jobExecutor.ExecutionThreadControl;
 }
        //private bool _syncAsSuspendEnabled;


        public ControllableJobExecutor()
        {
            AcquireJobsRunnable      = new RecordingAcquireJobsRunnable(this);
            JobAcquisitionThread     = new Thread(AcquireJobsRunnable.Run);
            AcquisitionThreadControl = new ConcurrencyTestCase.ThreadControl(JobAcquisitionThread);
            ExecutionThreadControl   = new ConcurrencyTestCase.ThreadControl(JobAcquisitionThread);
            // execution thread is same as acquisition thread
            AcquireJobsCmdFactory = new ControllableJobAcquisitionCommandFactory(this);
        }
        public virtual void SetUp()
        {
            _jobExecutor1 = (_engineRule.ProcessEngine.ProcessEngineConfiguration as ProcessEngineConfigurationImpl)
                            ?.JobExecutor as ControllableJobExecutor;

            //(ControllableJobExecutor)
            //((ProcessEngineConfigurationImpl)EngineRule.ProcessEngine.ProcessEngineConfiguration).JobExecutor;

            _jobExecutor1.MaxJobsPerAcquisition    = DefaultNumJobsToAcquire;
            _jobExecutor1.BackoffTimeInMillis      = BaseBackoffTime;
            _jobExecutor1.MaxBackoff               = MaxBackoffTime;
            _jobExecutor1.BackoffDecreaseThreshold = BackoffDecreaseThreshold;
            _acquisitionThread1 = _jobExecutor1.AcquisitionThreadControl;

            _jobExecutor2 = new ControllableJobExecutor((ProcessEngineImpl)_engineRule.ProcessEngine);
            _jobExecutor2.MaxJobsPerAcquisition    = DefaultNumJobsToAcquire;
            _jobExecutor2.BackoffTimeInMillis      = BaseBackoffTime;
            _jobExecutor2.MaxBackoff               = MaxBackoffTime;
            _jobExecutor2.BackoffDecreaseThreshold = BackoffDecreaseThreshold;
            _acquisitionThread2 = _jobExecutor2.AcquisitionThreadControl;
        }
 public ControllableAcquisitionCommand(ControllableJobExecutor outerInstance, ConcurrencyTestCase.ThreadControl threadControl, int numJobsToAcquire) : base(threadControl)
 {
     _outerInstance    = outerInstance;
     _numJobsToAcquire = numJobsToAcquire;
 }