mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-08 12:56:23 +03:00
fcdd202741
... instead of returning the maximum number of Processor objects that we can allocate. Some ports (e.g. gdb) rely on this information to determine the number of worker threads to spawn. When gdb spawned 64 threads, the kernel could not cope with generating backtraces for it, which prevented us from debugging it properly. This commit also removes the confusingly named `Processor::processor_count` function so that this mistake can't happen again.
42 lines
1020 B
C++
42 lines
1020 B
C++
/*
|
|
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <Kernel/FileSystem/VirtualFileSystem.h>
|
|
#include <Kernel/Process.h>
|
|
#include <Kernel/Time/TimeManagement.h>
|
|
|
|
namespace Kernel {
|
|
|
|
ErrorOr<FlatPtr> Process::sys$sysconf(int name)
|
|
{
|
|
VERIFY_NO_PROCESS_BIG_LOCK(this)
|
|
switch (name) {
|
|
case _SC_MONOTONIC_CLOCK:
|
|
return 1;
|
|
case _SC_NPROCESSORS_CONF:
|
|
case _SC_NPROCESSORS_ONLN:
|
|
return Processor::count();
|
|
case _SC_OPEN_MAX:
|
|
return OpenFileDescriptions::max_open();
|
|
case _SC_PAGESIZE:
|
|
return PAGE_SIZE;
|
|
case _SC_HOST_NAME_MAX:
|
|
return HOST_NAME_MAX;
|
|
case _SC_TTY_NAME_MAX:
|
|
return TTY_NAME_MAX;
|
|
case _SC_GETPW_R_SIZE_MAX:
|
|
return 4096; // idk
|
|
case _SC_CLK_TCK:
|
|
return TimeManagement::the().ticks_per_second();
|
|
case _SC_SYMLOOP_MAX:
|
|
return Kernel::VirtualFileSystem::symlink_recursion_limit;
|
|
default:
|
|
return EINVAL;
|
|
}
|
|
}
|
|
|
|
}
|