class DeferredOps

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

void DeferredOps (DeferredOps && )

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

DeferredOps & operator= (const DeferredOps & )

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

DeferredOps & operator= (DeferredOps && )

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

void ~DeferredOps ()

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

Friends

class PriorityChanger
class VmCowPages