From: <do...@do...> - 2005-03-15 20:46:54
|
Update of /cvs/SheepShaver/src Modified Files: timer.cpp Log Message: fix initialization of timer thread that could be put in indefinite suspended state from the start. |
From: <do...@do...> - 2005-03-16 00:35:56
|
Update of /cvs/SheepShaver/src Modified Files: timer.cpp Log Message: Use a mutex to protect wakeup_time instead of a semaphore, do we want some sort of barrier synchronisation? Anyhow, the current implementation looks reasonable enough now when using old LinuxThreads without TLS. XXX: in the past, the sem_post in sigsuspend_handler would not release the calling thread thus entering into a mutual waiting condition. |
From: <do...@do...> - 2005-07-01 23:15:17
|
Update of /cvs/SheepShaver/src by gbeauche Modified Files: timer.cpp Log Message: Hopefully fix the remaining issue in the High Resolution Timing support code and re-enable it on Linux platforms (they have clock_nanosleep). Why did I trigger an interrupt inside a held lock? Hmmm, we should probably add an _ack semaphore like we do e.g. for ethernet. |
From: <cv...@ce...> - 2009-07-31 19:42:08
|
Update of /home/cvs/cebix/SheepShaver/src by asvitkine Modified Files: timer.cpp Log Message: handle one case of PrimeTime(0) |
From: <cv...@ce...> - 2009-07-31 20:43:44
|
Update of /home/cvs/cebix/SheepShaver/src by asvitkine Modified Files: timer.cpp Log Message: correct implementation of PrimeTime(0) |
From: <cv...@ce...> - 2009-08-01 07:03:00
|
Update of /home/cvs/cebix/SheepShaver/src by asvitkine Modified Files: timer.cpp Log Message: only "continue previous delay" if delay is 0 |
From: <cv...@ce...> - 2009-08-17 20:44:52
|
Update of /home/cvs/cebix/SheepShaver/src by asvitkine Modified Files: timer.cpp Log Message: [Charles Srstka] Attached is a set of patches to port the precise timer that is currently used in the Linux and BeOS builds of SheepShaver to Mac OS X (and any other Mach-based operating systems). Currently, the Linux build uses the clock_gettime() function to get nanosecond-precision time, and falls back on gettimeofday() if it is not present. Unfortunately, Mac OS X does not currently support clock_gettime(), and gettimeofday() has only microsecond granularity. The Mach kernel, however, has a clock_get_time() function that does very nearly the same thing as clock_gettime(). The patches to BasiliskII cause the timing functions such as timer_current_time() to use clock_get_time() instead of gettimeofday() on Mach-based systems that do not support clock_gettime(). The changes to SheepShaver involve the precise timer. The existing code for Linux uses pthreads and real-time signals to handle the timing. Mac OS X unfortunately does not seem to support real-time signals, so Mach calls are again used to suspend and resume the timer thread in order to attempt to duplicate the Linux and BeOS versions of the timer. The code is somewhat ugly right now, as I decided to leave alone the pre-existing style of the source file, which unfortunately involves #ifdefs scattered throughout the file and some duplication of code. A future patch may want to clean this up to separate out the OS-specific code and put it all together at the top of the file. However, for the time being, this seems to work. This has not been extensively tested, because I have not been able to get my hands on a good test-case app for the classic Mac OS that would run inside the emulator and try out the timer. However, performance does seem to be better than with the pre-existing code, and nothing seems to have blown up as far as I can tell. I did find a game via a Google search - Cap'n Magneto - that is known to have problems with Basilisk/SheepShaver's legacy 60 Hz timer, and the opening fade-to-color for this game appears to run much more smoothly with the precise timer code in place. |
From: <cv...@ce...> - 2010-05-05 00:29:55
|
Update of /home/cvs/cebix/SheepShaver/src by asvitkine Modified Files: timer.cpp Log Message: use linked list for timers to avoid running out of descriptors |
From: <cv...@ce...> - 2010-08-22 19:31:43
|
Update of /home/cvs/cebix/SheepShaver/src by asvitkine Modified Files: timer.cpp Log Message: add NULL return value to macho timer function |
From: <cv...@ce...> - 2011-12-28 18:15:06
|
Update of /home/cvs/cebix/SheepShaver/src by asvitkine Modified Files: timer.cpp Log Message: don't deref desc after deleting it! |