As said on rP21264, OSX doesn't allow polling events from secondary threads. Thus when the interrupt gets triggered, things go bad.
The same issue was fixed in Atlas in rP19160.
From https://wiki.libsdl.org/SDL_PumpEvents:
> /!\ WARNING: This should only be run in the thread that initialized the video subsystem, and for extra safety, you should consider only doing those things on the main thread in any case.