summaryrefslogtreecommitdiffhomepage
path: root/dev/lib/memory
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-19 03:42:46 +0100
committerGitHub <noreply@github.com>2025-11-19 03:42:46 +0100
commit3bc2fca2c9beff13586b8bf3089ce439acb09de1 (patch)
tree4cf13eb975ef8a133ca0b28de29814c94f7daccc /dev/lib/memory
parentc9fd682f3662e0eec09de49a36a4ea199656da34 (diff)
parentb0292253ca9732b228ef505e3e719ae05c07c10c (diff)
Merge pull request #12 from amlel-el-mahrouss/develop
New OCL Distrib helpers.
Diffstat (limited to 'dev/lib/memory')
-rw-r--r--dev/lib/memory/allocator_system.hpp10
-rw-r--r--dev/lib/memory/tracked_ptr.hpp8
2 files changed, 9 insertions, 9 deletions
diff --git a/dev/lib/memory/allocator_system.hpp b/dev/lib/memory/allocator_system.hpp
index 1873064..81cd34f 100644
--- a/dev/lib/memory/allocator_system.hpp
+++ b/dev/lib/memory/allocator_system.hpp
@@ -40,8 +40,8 @@ namespace ocl
template <typename ret_type, typename allocator_new, typename allocator_delete>
class allocator_system
{
- allocator_new alloc_;
- allocator_delete del_;
+ allocator_new m_alloc_{};
+ allocator_delete m_free_{};
public:
allocator_system() = default;
@@ -52,18 +52,18 @@ namespace ocl
ret_type* claim() noexcept
{
- return alloc_();
+ return m_alloc_();
}
template <typename... var_type>
auto construct(var_type... args) -> std::shared_ptr<ret_type>
{
- return std::shared_ptr<ret_type>(alloc_.template var_alloc<var_type...>(args...), allocator_delete{});
+ return std::shared_ptr<ret_type>(m_alloc_.template var_alloc<var_type...>(args...), allocator_delete{});
}
void unclaim(ret_type* ptr)
{
- del_(ptr);
+ m_free_(ptr);
}
};
diff --git a/dev/lib/memory/tracked_ptr.hpp b/dev/lib/memory/tracked_ptr.hpp
index 61daada..bf557d8 100644
--- a/dev/lib/memory/tracked_ptr.hpp
+++ b/dev/lib/memory/tracked_ptr.hpp
@@ -140,7 +140,7 @@ namespace ocl::memory
this->reset();
}
- tracked_ptr(const tracked_ptr&) = delete;
+ tracked_ptr(const tracked_ptr&) = delete;
tracked_ptr& operator=(const tracked_ptr&) = delete;
public:
@@ -224,12 +224,12 @@ namespace ocl::memory
}
/// @brief a Must Pass function is a standard way to verify a container' validity, inspired from NeKernel/VMKernel.
- template <typename T>
- inline void must_pass(tracked_ptr<T>& ptr) noexcept
+ template <typename T, typename error_handler>
+ inline void must_pass(tracked_ptr<T>& ptr, error_handler handler)
{
if (ptr.manager().allocator().allocated_count_ < ptr.manager().allocator().deallocated_count_)
{
- ::kill(::getpid(), SIGTRAP);
+ handler.template error<true>("Invalid TrackedPtr detected: Deallocated count exceeds allocated count.");
}
}
} // namespace ocl::memory