Joystick configuration changes and threading

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.