1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 11:57:34 +00:00

AK+Kernel: Add AK::AtomicRefCounted and use everywhere in the kernel

Instead of having two separate implementations of AK::RefCounted, one
for userspace and one for kernelspace, there is now RefCounted and
AtomicRefCounted.
This commit is contained in:
Andreas Kling 2022-08-19 17:26:07 +02:00
parent 4889eb019a
commit e475263113
45 changed files with 81 additions and 94 deletions

View file

@ -8,7 +8,7 @@
#include <AK/Assertions.h>
#include <AK/Atomic.h>
#include <AK/RefCounted.h>
#include <AK/AtomicRefCounted.h>
#include <AK/RefPtr.h>
#include <AK/StdLibExtras.h>
#include <Kernel/Arch/Processor.h>
@ -21,7 +21,7 @@ class Weakable;
template<typename T>
class WeakPtr;
class WeakLink : public RefCounted<WeakLink> {
class WeakLink final : public AtomicRefCounted<WeakLink> {
template<typename T>
friend class Weakable;
template<typename T>
@ -30,7 +30,7 @@ class WeakLink : public RefCounted<WeakLink> {
public:
template<typename T, typename PtrTraits = RefPtrTraits<T>>
RefPtr<T, PtrTraits> strong_ref() const
requires(IsBaseOf<RefCountedBase, T>)
requires(IsBaseOf<AtomicRefCountedBase, T>)
{
RefPtr<T, PtrTraits> ref;