class DeferredOps

Defined at line 2130 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 2138 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h

void DeferredOps (DeferredOps && )

Defined at line 2139 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h

DeferredOps & operator= (const DeferredOps & )

Defined at line 2140 of file ../../zircon/kernel/vm/include/vm/vm_cow_pages.h

DeferredOps & operator= (DeferredOps && )

Defined at line 2141 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 8168 of file ../../zircon/kernel/vm/vm_cow_pages.cc

void ~DeferredOps ()

Defined at line 8204 of file ../../zircon/kernel/vm/vm_cow_pages.cc

Friends

class PriorityChanger
class VmCowPages