test_class.file: rxjava/src/test/java/io/reactivex/internal/schedulers/SingleSchedulerTest.java
test_class.identifier: SingleSchedulerTest
test_class.superclass: extends AbstractSchedulerTests
test_case.body: @Test(timeout = 1000)
      public void runnableDisposedAsync() throws Exception {
          final Scheduler s = Schedulers.single();
          Disposable d = s.scheduleDirect(Functions.EMPTY_RUNNABLE);
  
          while (!d.isDisposed()) {
              Thread.sleep(1);
          }
      }
test_case.class_method_signature: SingleSchedulerTest.runnableDisposedAsync()
test_case.full_signature: @Test(timeout = 1000) public void runnableDisposedAsync()
test_case.identifier: runnableDisposedAsync
test_case.invocations: single scheduleDirect isDisposed sleep
test_case.modifiers: @Test(timeout = 1000) public
test_case.parameters: ()
test_case.return: void
test_case.signature: void runnableDisposedAsync()
focal_class.declarator: threadFactory
focal_class.modifier: final
focal_class.original_string: final ThreadFactory threadFactory;
focal_class.type: ThreadFactory
focal_class.var_name: threadFactory
focal_class.declarator: executor = new AtomicReference<ScheduledExecutorService>()
focal_class.modifier: final
focal_class.original_string: final AtomicReference<ScheduledExecutorService> executor = new AtomicReference<ScheduledExecutorService>();
focal_class.type: AtomicReference<ScheduledExecutorService>
focal_class.var_name: executor
focal_class.declarator: KEY_SINGLE_PRIORITY = "rx2.single-priority"
focal_class.modifier: private static final
focal_class.original_string: private static final String KEY_SINGLE_PRIORITY = "rx2.single-priority";
focal_class.type: String
focal_class.var_name: KEY_SINGLE_PRIORITY
focal_class.declarator: THREAD_NAME_PREFIX = "RxSingleScheduler"
focal_class.modifier: private static final
focal_class.original_string: private static final String THREAD_NAME_PREFIX = "RxSingleScheduler";
focal_class.type: String
focal_class.var_name: THREAD_NAME_PREFIX
focal_class.declarator: SINGLE_THREAD_FACTORY
focal_class.modifier: static final
focal_class.original_string: static final RxThreadFactory SINGLE_THREAD_FACTORY;
focal_class.type: RxThreadFactory
focal_class.var_name: SINGLE_THREAD_FACTORY
focal_class.declarator: SHUTDOWN
focal_class.modifier: static final
focal_class.original_string: static final ScheduledExecutorService SHUTDOWN;
focal_class.type: ScheduledExecutorService
focal_class.var_name: SHUTDOWN
focal_class.file: rxjava/src/main/java/io/reactivex/internal/schedulers/SingleScheduler.java
focal_class.identifier: SingleScheduler
focal_class.class_method_signature: SingleScheduler.SingleScheduler()
focal_class.full_signature: public  SingleScheduler()
focal_class.identifier: SingleScheduler
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  SingleScheduler()
focal_class.class_method_signature: SingleScheduler.SingleScheduler(ThreadFactory threadFactory)
focal_class.full_signature: public  SingleScheduler(ThreadFactory threadFactory)
focal_class.identifier: SingleScheduler
focal_class.modifiers: public
focal_class.parameters: (ThreadFactory threadFactory)
focal_class.signature:  SingleScheduler(ThreadFactory threadFactory)
focal_class.class_method_signature: SingleScheduler.createExecutor(ThreadFactory threadFactory)
focal_class.full_signature: static ScheduledExecutorService createExecutor(ThreadFactory threadFactory)
focal_class.identifier: createExecutor
focal_class.modifiers: static
focal_class.parameters: (ThreadFactory threadFactory)
focal_class.return: ScheduledExecutorService
focal_class.signature: ScheduledExecutorService createExecutor(ThreadFactory threadFactory)
focal_class.class_method_signature: SingleScheduler.start()
focal_class.full_signature: @Override public void start()
focal_class.identifier: start
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void start()
focal_class.class_method_signature: SingleScheduler.shutdown()
focal_class.full_signature: @Override public void shutdown()
focal_class.identifier: shutdown
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void shutdown()
focal_class.class_method_signature: SingleScheduler.createWorker()
focal_class.full_signature: @NonNull @Override public Worker createWorker()
focal_class.identifier: createWorker
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: ()
focal_class.return: Worker
focal_class.signature: Worker createWorker()
focal_class.class_method_signature: SingleScheduler.scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit)
focal_class.full_signature: @NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit)
focal_class.identifier: scheduleDirect
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (@NonNull Runnable run, long delay, TimeUnit unit)
focal_class.return: Disposable
focal_class.signature: Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit)
focal_class.class_method_signature: SingleScheduler.schedulePeriodicallyDirect(@NonNull Runnable run, long initialDelay, long period, TimeUnit unit)
focal_class.full_signature: @NonNull @Override public Disposable schedulePeriodicallyDirect(@NonNull Runnable run, long initialDelay, long period, TimeUnit unit)
focal_class.identifier: schedulePeriodicallyDirect
focal_class.modifiers: @NonNull @Override public
focal_class.parameters: (@NonNull Runnable run, long initialDelay, long period, TimeUnit unit)
focal_class.return: Disposable
focal_class.signature: Disposable schedulePeriodicallyDirect(@NonNull Runnable run, long initialDelay, long period, TimeUnit unit)
focal_class.superclass: extends Scheduler
focal_method.body: @NonNull
      @Override
      public Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit) {
          ScheduledDirectTask task = new ScheduledDirectTask(RxJavaPlugins.onSchedule(run));
          try {
              Future<?> f;
              if (delay <= 0L) {
                  f = executor.get().submit(task);
              } else {
                  f = executor.get().schedule(task, delay, unit);
              }
              task.setFuture(f);
              return task;
          } catch (RejectedExecutionException ex) {
              RxJavaPlugins.onError(ex);
              return EmptyDisposable.INSTANCE;
          }
      }
focal_method.class_method_signature: SingleScheduler.scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit)
focal_method.full_signature: @NonNull @Override public Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit)
focal_method.identifier: scheduleDirect
focal_method.invocations: onSchedule submit get schedule get setFuture onError
focal_method.modifiers: @NonNull @Override public
focal_method.parameters: (@NonNull Runnable run, long delay, TimeUnit unit)
focal_method.return: Disposable
focal_method.signature: Disposable scheduleDirect(@NonNull Runnable run, long delay, TimeUnit unit)