A Moonbit module to manage CPU core affinity.
moon add justjavac/core_affinity///|
test "read current affinity" {
let ids = @core_affinity.get_core_ids()
assert_true(ids.length() > 0)
assert_true(ids.length() <= 64)
}///|
test "pin to the first available core and restore" {
let original_ids = @core_affinity.get_core_ids()
assert_true(original_ids.length() > 0)
let first_id = original_ids[0]
assert_true(@core_affinity.set_for_current([first_id]))
assert_true(@core_affinity.get_core_ids().contains(first_id))
ignore(@core_affinity.set_for_current(original_ids))
}test "inspect current affinity" {
let ids = get_core_ids()
assert_true(ids.length() > 0)
assert_true(ids.length() <= 64)
}test "pin thread to one available core" {
let original_ids = get_core_ids()
assert_true(original_ids.length() > 0)
let first_id = original_ids[0]
assert_true(set_for_current([first_id]))
let current_ids = get_core_ids()
assert_true(current_ids.contains(first_id))
ignore(set_for_current(original_ids))
}A Moonbit module to manage CPU core affinity.