#include "types.hh" #include "util.hh" #include "affinity.hh" #if HAVE_SCHED_H #include #endif namespace nix { #if HAVE_SCHED_SETAFFINITY static bool didSaveAffinity = false; static cpu_set_t savedAffinity; #endif void setAffinityTo(int cpu) { #if HAVE_SCHED_SETAFFINITY if (sched_getaffinity(0, sizeof(cpu_set_t), &savedAffinity) == -1) return; didSaveAffinity = true; printMsg(lvlDebug, format("locking this thread to CPU %1%") % cpu); cpu_set_t newAffinity; CPU_ZERO(&newAffinity); CPU_SET(cpu, &newAffinity); if (sched_setaffinity(0, sizeof(cpu_set_t), &newAffinity) == -1) printMsg(lvlError, format("failed to lock thread to CPU %1%") % cpu); #endif } int lockToCurrentCPU() { #if HAVE_SCHED_SETAFFINITY int cpu = sched_getcpu(); if (cpu != -1) setAffinityTo(cpu); return cpu; #else return -1; #endif } void restoreAffinity() { #if HAVE_SCHED_SETAFFINITY if (!didSaveAffinity) return; if (sched_setaffinity(0, sizeof(cpu_set_t), &savedAffinity) == -1) printMsg(lvlError, "failed to restore affinity %1%"); #endif } } refslogtreecommitdiff
path: root/tests/cpan.scm
AgeCommit message (Expand)Author
2020-01-15import: cpan: Rewrite tests to use an HTTP server instead of mocking....Ludovic Courtès
2020-01-15import: cpan: Rewrite to use 'define-json-mapping'....Ludovic Courtès
2019-08-22Revert "import: cpan: Adapt for the change to guile-json version 3."...Mark H Weaver
2019-08-21import: cpan: Adapt for the change to guile-json version 3....Christopher Baines
2018-09-04Switch to Guile-Gcrypt....Ludovic Courtès
2018-08-24import: cpan: Adjust test to new URL....Ludovic Courtès
2017-10-30Revert "import: cpan: Use HTTPS for home pages."...Tobias Geerinckx-Rice
2017-10-29import: cpan: Use HTTPS for home pages....Tobias Geerinckx-Rice
2017-10-28import: cpan: Add trailing "/" on home-page....Eric Bavier
2017-10-28import: cpan: Propagate imported dependencies....Eric Bavier
2017-09-14import: cpan: Adjust expected license in tests....Ludovic Courtès
2017-06-07import: cpan: Update CPAN importer to use MetaCPAN v1 API....James Richardson