ES contexts sharing

I use SDL2 2.0.12 to create and use contexts on this way (now is without check):

// setting context attributes
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
const int init_result = SDL_Init(SDL_INIT_EVERYTHING);
window = SDL_CreateWindow(
    title.data(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
    window_width, window_height,
    ::SDL_WINDOW_OPENGL | SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_RESIZABLE);
// 1th context - main
gl_context = SDL_GL_CreateContext(window);
// 2th is using for loading textures while 1th works
SDL_GL_SetAttribute(SDL_GL_SHARE_WITH_CURRENT_CONTEXT, 1);
gl_context_sub = SDL_GL_CreateContext(window);
SDL_GL_MakeCurrent(window, gl_context);

In adds, 1th context creates textures, draws it while 2th one is loading other textures for the game process. Swap context function:

static int load_gl_in_background(void *foo) {
    SDL_GL_MakeCurrent(window, gl_context_sub);
    // here foo is calling - loading textures
    SDL_GL_MakeCurrent(window, gl_context);
    return 0;
}

SDL_Thread *thread =
    SDL_CreateThread(load_gl_in_background, "SDL thread", (void *)foo);

Yes, that’s work on desktop well with core context, but when I set es (3.2), I have the sharing objects problem. The textures, loaded by 2th context, after making context current is missing. I’m sure, loop is working, all process are fine (sounds, not loaded textures rendering …).
SDL_GetError() says:
Cannot change context: Unable to make EGL context current (call to eglMakeCurrent failed, reporting an error of EGL_BAD_ACCESS).
I do think the trouble is probably that I should use special SurfaceView for the each context, but I hope it could be solved by flags, attributes in C++ code. For porting I used SDL I need any ideas. Thanks!