Why don’t threads, mutexes, and semaphores work?
Threads are not implemented because of limitations in Mac OS 9. While Mac OS 9 has preemptive threads and synchronization primitives as part of the MPLibrary and DriverServicesLib, the usefulness of any implementation is very limited due to the fact that the majority of the Mac OS API’s are not thread-safe. Hence, most of the SDL API’s would not be thread-safe as they are built upon unsafe API’s. Often programmers are misled into using threads, when a single-threaded solution is faster, simpler, and more robust. If you are unsure if you really need them, ask on the SDL mailing list and someone will provide assistance.