Hi,
I have developed and ported a sequencer to Apple macOS. It is written in ANSI C and uses Gtk+-3.0 (Gimp Toolkit) for UI.
This toolkit uses some Cocoa specific backend, note there are different backends for different platforms available.
After some research I have found this:
https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html#//apple_ref/doc/uid/TP30000905-CH211-BABCHEEB
The function I wanted to use was:
But the header file doesn't contain it:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/task_policy.h
So was it deprecated? Howto do this, nowadays?
Because the UI animation performance is really bad. The threads interfacing CoreAudio are fine.
The UI thread is usually the main thread of the process.
I have developed and ported a sequencer to Apple macOS. It is written in ANSI C and uses Gtk+-3.0 (Gimp Toolkit) for UI.
This toolkit uses some Cocoa specific backend, note there are different backends for different platforms available.
After some research I have found this:
https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html#//apple_ref/doc/uid/TP30000905-CH211-BABCHEEB
The function I wanted to use was:
Code Block thread_policy_set()
But the header file doesn't contain it:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/task_policy.h
So was it deprecated? Howto do this, nowadays?
Code Block struct task_category_policy tcatpolicy; int ret; tcatpolicy.role = TASK_FOREGROUND_APPLICATION; if((ret = task_policy_set(mach_task_self(), TASK_CATEGORY_POLICY, (thread_policy_t)&tcatpolicy, TASK_CATEGORY_POLICY_COUNT)) != KERN_SUCCESS) { fprintf(stderr, "set_my_task_policy() failed.\n"); }
Because the UI animation performance is really bad. The threads interfacing CoreAudio are fine.
The UI thread is usually the main thread of the process.