src/main/java/io/reactivex/internal/util/BlockingHelper.java
public static void verifyNonBlocking() {
        if (RxJavaPlugins.isFailOnNonBlockingScheduler()
                && (Thread.currentThread() instanceof NonBlockingThread
                        || RxJavaPlugins.onBeforeBlocking())) {
            throw new IllegalStateException("Attempt to block on a Scheduler " + Thread.currentThread().getName() + " that doesn't support blocking operators as they may lead to deadlock");
        }
    }
public static void verifyNonBlocking() {
        if (RxJavaPlugins.isFailOnNonBlockingScheduler()
                && (Thread.currentThread() instanceof NonBlockingThread
                        || RxJavaPlugins.onBeforeBlocking())) {
            throw new IllegalStateException("Attempt to block on a Scheduler " + Thread.currentThread().getName() + " that doesn't support blocking operators as they may lead to deadlock");
        }
    }
Checks if the {@code failOnNonBlockingScheduler} plugin setting is enabled and the current
thread is a Scheduler sensitive to blocking operators.
@throws IllegalStateException if the {@code failOnNonBlockingScheduler} and the current thread is sensitive to blocking