LLFIO  v2.00
Todo List
Namespace llfio_v2_xxx
TODO FIXME Replace in-memory log with memory map file backed log.
Class llfio_v2_xxx::algorithm::cached_parent_handle_adapter< T >
I have been lazy and used public inheritance from that base i/o handle. I should use protected inheritance to prevent slicing, and expose all the public functions by hand.
Class llfio_v2_xxx::algorithm::combining_handle_adapter< Op, Target, Source >
I have been lazy and used public inheritance from byte_io_handle and file_handle. I should use protected inheritance to prevent slicing, and expose all the public functions by hand.
Class llfio_v2_xxx::algorithm::shared_fs_mutex::atomic_append

Implement hole punching once I port that code from LLFIO v1.

Decide on some resolution mechanism for sudden process exit.

There is a 1 out of 2^64-2 chance of unique id collision. It would be nice if we actually formally checked that our chosen unique id is actually unique.

Member llfio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::_lock (entities_guard &out, deadline d, bool spin_not_sleep) noexcept final
Read from header.last_known_good immediately if possible in order to avoid a duplicate read later
Member llfio_v2_xxx::algorithm::shared_fs_mutex::atomic_append::fs_mutex_append (const path_handle &base, path_view lockfile, bool nfs_compatibility=false, bool skip_hashing=false) noexcept
fs_mutex_append needs to check if file still exists after lock is granted, awaiting path fetching.
Class llfio_v2_xxx::algorithm::shared_fs_mutex::memory_map< Hasher, HashIndexSize, SpinlockType >
memory_map::_hash_entities needs to hash x16, x8 and x4 at a time to encourage auto vectorisation