can push messages from worker threads and pull them from the SDL thread