class DeferredOps
Defined at line 2105 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 2113 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
void DeferredOps (DeferredOps && )
Defined at line 2114 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
DeferredOps & operator= (const DeferredOps & )
Defined at line 2115 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h
DeferredOps & operator= (DeferredOps && )
Defined at line 2116 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 7966 of file ../../zircon/kernel/vm/vm_cow_pages.cc
void ~DeferredOps ()
Defined at line 8002 of file ../../zircon/kernel/vm/vm_cow_pages.cc
Friends
class PriorityChanger
class VmCowPages