void OpenTimer(TMSGlobalPtr g) { gTimeResMilli = LoadTimeRes(); if (gTimeResMilli < 1) gTimeResMilli = 1; if (pthread_create(&gThread, NULL, TimerTask, NULL) == 0) { SetThreadToPriority(gThread, 96, true, gTimeResMilli * 1000000, 500 * 1000, gTimeResMilli * 1000000); // Computation value is set to 500 us (like CoreMidi RT threads) ReportN("MidiShare", "open time interrupt using a timer - time resolution is", gTimeResMilli); } else { g->error += MIDIerrTime; Report("MidiShare", "cannot create real-time thread",""); } }
static void SetRealTime() { SetThreadToPriority(pthread_self(), 96, true, gPeriod, gComputation, gConstraint); }