Hi Rich,

there's no need to reinvent this wheel:

  val internalCallingThreadExecutionContext: ExecutionContext =
    dynamicAccess.getObjectFor[ExecutionContext]("scala.concurrent.Future$InternalCallbackExecutor$").getOrElse(
      new ExecutionContext with BatchingExecutor {
        override protected def unbatchedExecute(r: Runnable): Unit = r.run()
        override def reportFailure(t: Throwable): Unit = dispatcher reportFailure t
      })

However, I strongly advise against going this route because the consequences are many.
I'd avoid the implicitness of this EC, preferring to manually having to add it where it is used, so that there is no inadvertent use of the sameThread EC.

Do you agree?