I'm happy to upload my patches but I'd like advice on how you want them. I consider them at "hack" level and _might_ break linux compiles so I don't want to break the trunk (not that I expect I have write permission anyway). I'm also not a git expert, so advice please... Incidentally I also made some other minor changes as I got tired of the compiler complaints about "wait" (and one other) function arguments shadowing globals because -Wshadow is turned on. In my case simply appended and _ so wait becomes wait_ but I'd rather not send those changes back without agreement. Other comments below: On 23/07/2009, at 4:44 AM, Lennart Poettering wrote: > On Mon, 20.07.09 04:16, Kim Lester (kim at dfusion.com.au) wrote: > > I'd be very interested to have a peek on your patches! > >> * Darwin doesn't support the POSIX clock_get*() functions. Guess >> what >> PA sues *%$#)* >> So I've written high resolution clock_get*() >> equivalent functions. > > Hmm, but we fall back to gettimeofday if the monotonic clock does not > exist. Which should be good enough. Or isn't it? Yes that's quite correct. I actually got stuck in the tests (rtstutter.c) that calls clock_gettime() directly. Incidentally alsa tests also include clock_gettime(). The obvious solution was just to change the test but I had been irritated by this omission of Apple and did some homework. I haven't done any performance tests myself but reading Apple and other articles indicates that high res times are available and efficient. I'm not sure how good gettimeofday is in this regard (it has to do extra work at least). So since I happen to care about latency I tried writing a replacement in the spirit of hires timers. The actual difference may not be worth it and I'm not claiming my version is more efficient (I did a divide to get seconds from ns which would be better avoided). I'm kinda surprised there isn't a set of gnu functions to replace these missing OS library calls. I looked but didn't find one so I wrote one. I also thought it would be cleaner in principle to have a replacement clock_getttime() than to #ifdef around multiple other sections of code. >> * PA scripts use preload etc to load modules - but Darwin treats >> shared >> libs and modules (bundles) as different species, so preload breaks. >> &%(#**&@#@! > > Hmm, the preloading feature is merely an optimization. It is safe to > disable that. > regards Kim