class PagerThreadPool

Defined at line 27 of file ../../src/storage/lib/vfs/cpp/pager_thread_pool.h

Implements a simple background thread pool that listens for pager requests and dispatches page

requests and notifications.

This avoids libasync because the pager is both performance-critical and its needs are very

simple. libasync associates additional tracking information and has lambdas for every watched

object that are not required for this use-case. It is easy enough to listen for pager requests on

the port directly, and this also allows us to service the same port from potentially multiple

threads.

Public Methods

void PagerThreadPool (PagedVfs & vfs, int num_threads)

The VFS must outlive this class (in practice it owns us). Init() must be called and must

succeed before using this class.

Defined at line 24 of file ../../src/storage/lib/vfs/cpp/pager_thread_pool.cc

void ~PagerThreadPool ()

This object must be destroyed before the associated PagedVfs.

Defined at line 27 of file ../../src/storage/lib/vfs/cpp/pager_thread_pool.cc

const zx::port & port ()

Defined at line 36 of file ../../src/storage/lib/vfs/cpp/pager_thread_pool.h

bool IsRunning ()

Defined at line 40 of file ../../src/storage/lib/vfs/cpp/pager_thread_pool.h

zx::result<> Init ()

Defined at line 42 of file ../../src/storage/lib/vfs/cpp/pager_thread_pool.cc

std::vector<zx::unowned_thread> GetPagerThreads ()

Gets the list of pager threads. This is designed to allow callers to set up scheduling profiles

on their pagers.

Defined at line 53 of file ../../src/storage/lib/vfs/cpp/pager_thread_pool.cc