I've included in the vala posix vapi all the scheduler functions provided by sched.h. A simple usage, could be for example this code (which shows the number of CPUs that you have): /* Compile with valac --pkg posix test-posix-sched.vala -v -X -D"_GNU_SOURCE" */ using Posix; int get_cpu_count() { int count = 0; var cpus = new Posix.CpuSet(); var size = cpus.alloc_size(); cpus.zero_sized(size); cpus.getaffinity(size); count = cpus.count_sized(size); return (count <= 0) ? 1 : count; } int main(string[] args) { print(@"Your PC has $(get_cpu_count()) CPUs\n"); return 0; } (Maybe this get_cpu_count() function could be added to the vapi itself, for getting the number of CPUs for multi-threading apps using, for example a ThreadPool or just to limit Thread creation...) Bye.
Attachment:
vala-Posix-added-sched_-functions-support.patch
Description: Text Data