Note that GLFW requires that you perform window creation and glfwPollEvents from the main thread for compatibility reasons - see this answer to a previous question about GLFW.
If you’re following that advice, then all callbacks should occur on the main thread.