#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 } } guix/'>summaryrefslogtreecommitdiff
path: root/gnu/packages/libffi.scm
AgeCommit message (Expand)Author
2024-12-13gnu: python-cffi: Improve package style....* gnu/packages/libffi.scm: Add python-build and pyproject modules. Select just pypi-uri symbol from python module. (python-cffi): Fix indenation and adjust order of fileds. [build-system]: Swap to pyproject-build-system. [arguments]<test-flags>: Move tests directories and deselcect options here. <phases>: Use default 'check phase. Add 'set-gcc phase. [native-inputs]: Add python-setuptools and python-wheel. Change-Id: I0baa120ac86ef1c1e90cf44a4d439d874b8920b5 Sharlatan Hellseher
2024-12-13gnu: python-cffi: Update to 1.17.1....* gnu/packages/libffi.scm (python-cffi): Update to 1.17.1. [phases]{check}: Adjust changed path to C sources. {patch-paths-of-dynamically-loaded-libraries}: Likewise. Change-Id: I76a58fbd339cef96379784ae670fc4b1339e3a9c Sharlatan Hellseher
2024-12-03gnu: libffi: Fix [cross-]build with gcc-14....* gnu/packages/libffi.scm (libffi)[arguments]: When building for the 64bit Hurd, or cross-building, add "CFLAGS" to #:configure-flags to disable breaking warning. Change-Id: I05bf3f460f3e292626de1894b7a3cf381cb07702 Janneke Nieuwenhuizen