clangd broke because it can't look through symlinks. compile_commands manipulation does not fix it, clangd configuration does not fix it, a vfs overlay does not fix it, and while a combination of those can fix it with a bind mount in place that's just too cursed to even consider clangd bug: https://github.com/llvm/llvm-project/issues/116877 Change-Id: I8e3e8489548eb3a7aa65ac9d12a5ec8abf814aec
39 lines
771 B
C++
39 lines
771 B
C++
#pragma once
|
|
///@file
|
|
|
|
#include <optional>
|
|
#include <sys/resource.h>
|
|
|
|
#include "lix/libutil/types.hh"
|
|
|
|
namespace nix {
|
|
|
|
/**
|
|
* If cgroups are active, attempt to calculate the number of CPUs available.
|
|
* If cgroups are unavailable or if cpu.max is set to "max", return 0.
|
|
*/
|
|
unsigned int getMaxCPU();
|
|
|
|
|
|
/**
|
|
* Change the stack size.
|
|
*/
|
|
void setStackSize(rlim_t stackSize);
|
|
|
|
|
|
/**
|
|
* Restore the original inherited Unix process context (such as signal
|
|
* masks, stack size). This should generally be called after fork for a process
|
|
* intending to simply execve.
|
|
*
|
|
* See startSignalHandlerThread(), saveSignalMask().
|
|
*/
|
|
void restoreProcessContext(bool restoreMounts = true);
|
|
|
|
/**
|
|
* @return the path of the current executable.
|
|
*/
|
|
std::optional<Path> getSelfExe();
|
|
|
|
}
|