From the user perspective, blockcontexts are not immediately useful. I
think it's more of a priority to warn about uses of the api before its
extension mechanisms.
You were talking about a second SIP dedicated to execution contexts. There
could be a guide page mirroring it and including block context?

In overviews/core/_posts/2012-09-20-futures.md:

> +As seen with the global `ExecutionContext`, it is possible to notify an `ExecutionContext` of a blocking call with the `blocking` construct.
> +The implementation is however at the complete discretion of the `ExecutionContext`. While some `ExecutionContext` such as `ExecutionContext.global`
> +implement `blocking` by means of `ManagedBlocker`, some just do nothing:
> +
> +    implicit val ec = ExecutionContext.fromExecutor(
> +                        Executors.newFixedThreadPool(4))
> +    Future {
> +      // here blocking serves only for documentation purpose
> +      blocking { blockingStuff() }
> +    }
> +
> +Is equivalent to
> +
> +    Future { blockingStuff() }
> +
> +The blocking code may also throw an exception. In this case, the exception is forwarded to the caller.

This section is lacking the discussion of BlockContext.

--
Reply to this email directly or view it on
GitHub<https://github.com/scala/scala.github.com/pull/302/files#r9802740>
.