Also, since this context provider only seems useful in cross-threading situations (would default in-memory be used otherwise?), maybe this should be concurrent.