Compilation breaks (again in Server.cpp) ... because of a fourth missing parameter:
success = thread_set_priority_rt(AudioConvertNanosToHostTime(ns_per_block), AudioConvertNanosToHostTime(ns_per_block - 2), AudioConvertNanosToHostTime(ns_per_block - 1), 1); I've put a '1' in there ... its a boolean field (the field is called "preemptible".... but I dont know if the '1' is correct. The apple docs say: Say your computer reports 133 million for the value of HZ. If you pass the example values given as arguments to this function, your thread tells the scheduler that it needs approximately 40,000 (HZ/3300) out of the next 833,333 (HZ/160) bus cycles. The preemptible value (1) indicates that those 40,000 bus cycles need not be contiguous. However, the constraint value (HZ/2200) tells the scheduler that there can be no more than 60,000 bus cycles between the start of computation and the end of computation. However ... whilst compilation gets further, there is now a linking error: [ 29%] Building CXX object source/CMakeFiles/supernova.dir/server/main.cpp.o Linking CXX executable supernova Undefined symbols: "_AudioConvertNanosToHostTime", referenced from: nova::thread_init_functor::operator()(int)in libsupernova.a(server.cpp.o) nova::thread_init_functor::operator()(int)in libsupernova.a(server.cpp.o) nova::thread_init_functor::operator()(int)in libsupernova.a(server.cpp.o) ld: symbol(s) not found collect2: ld returned 1 exit status AudioConvertNanosToHostTime (without the underbar ... ) is supplied in #include <CoreAudio/HostTime.h> Etienne On Mon, Aug 16, 2010 at 9:01 PM, e deleflie <[email protected]> wrote: > thanks Tim, > > Here's some more corrections ... in server.cpp .... the includes > should read thus: > > #ifdef __APPLE__ > #include <AvailabilityMacros.h> > #include <CoreAudio/HostTime.h> > #include <CoreAudio/CoreAudioTypes.h> > #endif > > (maybe I should look up how to write a patch ... (I use VI, is it easy?)) > > Etienne > > > On Mon, Aug 16, 2010 at 8:27 PM, Tim Blechmann <[email protected]> wrote: >>> After trying a few different values for CONSTRAINTS and COMPUTATION in >>> server.cpp. I realised that the code was not actually being called.... >>> because the following line returns false: >>> >>> #if defined(NOVA_TT_PRIORITY_PERIOD_COMPUTATION_CONSTRAINT) && defined >>> (APPLE) >> >> ah, stupid me ... fixed >> >> thnx, tim >> >> -- >> [email protected] >> http://tim.klingt.org >> >> Im übrigen ist es gescheiter, sich warm zuzudecken als sich zu >> betrinken. >> Werner Schwab >> > _______________________________________________ nova-dev mailing list [email protected] http://klingt.org/cgi-bin/mailman/listinfo/nova-dev http://tim.klingt.org/nova
