class DefaultThreadManager extends HaloThreadManager {

    @Override
    public Future enqueue(@Threading.Policy int thread, @NonNull Runnable runnable) {
        Future<?> future;
        switch (thread) {
            case Threading.POOL_QUEUE_POLICY:
                future = mPoolQueue.submit(runnable);
                break;
            case Threading.SINGLE_QUEUE_POLICY:
                future = mSingleQueue.submit(runnable);
                break;
            case Threading.SAME_THREAD_POLICY:
                future = new FutureTask<>(runnable, null);
                runnable.run();
                break;
            default:
                throw new HaloConfigurationException("Unsupported option or an Action operation");
        }
        return future;
    }

    public  DefaultThreadManager();

}