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