diff --git a/include/physics.hpp b/include/physics.hpp index 80bcbef..73d1376 100644 --- a/include/physics.hpp +++ b/include/physics.hpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -16,6 +17,7 @@ #include "octree.hpp" #ifndef WEB +#define BS_THREAD_POOL_NATIVE_EXTENSIONS #include #endif @@ -67,7 +69,8 @@ public: std::vector springs; public: - MassSpringSystem() : threads(std::thread::hardware_concurrency() - 1) { + MassSpringSystem() + : threads(std::thread::hardware_concurrency() - 1, SetThreadName) { std::cout << "Using Barnes-Hut + octree repulsion force calculation." << std::endl; @@ -83,6 +86,8 @@ public: MassSpringSystem &operator=(MassSpringSystem &&move) = delete; private: + static auto SetThreadName(std::size_t idx) -> void; + auto BuildOctree() -> void; public: @@ -134,7 +139,9 @@ public: PhysicsState state; public: - ThreadedPhysics() : physics(PhysicsThread, std::ref(state)) {} + ThreadedPhysics() : physics(PhysicsThread, std::ref(state)) { + pthread_setname_np(physics.native_handle(), "physics"); + } ThreadedPhysics(const ThreadedPhysics ©) = delete; ThreadedPhysics &operator=(const ThreadedPhysics ©) = delete; diff --git a/src/main.cpp b/src/main.cpp index 90173ae..c234f39 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,6 +20,8 @@ // - Click states to display them in the board // - Find shortest path to any winning state and mark it in the graph // - Also mark the next move along the path on the board +// TODO: Do I have a huge memory leak or is the memory just not reclaimed from +// the C++ runtime? auto main(int argc, char *argv[]) -> int { // if (argc < 2) { diff --git a/src/physics.cpp b/src/physics.cpp index 752bc93..99d0805 100644 --- a/src/physics.cpp +++ b/src/physics.cpp @@ -108,6 +108,10 @@ auto MassSpringSystem::CalculateSpringForces() -> void { } } +auto MassSpringSystem::SetThreadName(std::size_t idx) -> void { + BS::this_thread::set_os_thread_name(std::format("bh-worker-{}", idx)); +} + auto MassSpringSystem::BuildOctree() -> void { ZoneScoped;