class DeferredOps
Defined at line 2127 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
Helper object for finishing VmCowPages operations that must occur after the lock is dropped. This
is necessary due to some operations being externally locked. It is expected that this object is
stack allocated using the __UNINITIALIZED tag in a sequence like this:
__UNINITIALIZED VmCowPages::DeferredOps deferred(cow_object_);
Guard
<CriticalMutex
> guard{cow_object_->lock()};
cow_object_->DoOperationLocked(
&deferred
);
The destruction order will then allow |deferred| to perform its actions after |guard| is
destructed and the lock is dropped.
This class it not thread safe.
Public Methods
void DeferredOps (const DeferredOps & )
Defined at line 2135 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
void DeferredOps (DeferredOps && )
Defined at line 2136 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
DeferredOps & operator= (const DeferredOps & )
Defined at line 2137 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
DeferredOps & operator= (DeferredOps && )
Defined at line 2138 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
void DeferredOps (VmCowPages * self)
Construct a DeferredOps for the given VmCowPages. Must be constructed, and deconstructed,
without the lock held. It is the callers responsibility to ensure the pointer remains valid
over the lifetime of the object.
Defined at line 7985 of file ../../zircon/kernel/vm/vm_cow_pages.cc
void ~DeferredOps ()
Defined at line 8021 of file ../../zircon/kernel/vm/vm_cow_pages.cc
Friends
class PriorityChanger
class VmCowPages