#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 } } href='/guix/'>summaryrefslogtreecommitdiff
path: root/nix/libstore/local-store.cc
AgeCommit message (Expand)Author
2020-09-14daemon: Spawn 'guix authenticate' once for all....Ludovic Courtès
2020-09-14daemon: Isolate signing and signature verification functions....Ludovic Courtès
2020-09-11daemon: Simplify interface with 'guix authenticate'....Ludovic Courtès
2019-11-13daemon: Don't include <linux/fs.h>....Ludovic Courtès
2019-10-16daemon: Make 'profiles/per-user' non-world-writable....Ludovic Courtès
2019-09-08daemon: Run 'guix substitute' directly and assume a single substituter....Ludovic Courtès
2019-09-08daemon: Run 'guix authenticate' directly....Ludovic Courtès
2019-02-04daemon: Add "/guix" to default 'nixLibexecDir'....Ludovic Courtès
2018-12-16daemon: Use unbranded phrases in comments and messages....Ludovic Courtès
2018-11-14daemon: Install 'authenticate' script under LIBEXECDIR/guix....Ludovic Courtès
2018-03-30daemon: Remove unused schema upgrade code....Ludovic Courtès
2016-10-28daemon: Improve the SQLite wrapper API....Eelco Dolstra
2016-10-28daemon: Factor out SQLite handling....Eelco Dolstra
2016-10-28daemon: Turn retrying SQLite transactions into a higher-order function....Eelco Dolstra