/// Provides read access to the underlying object, allowing multiple immutable references to it.
pub fn read<'a>(&'a self) -> Result<BfSharedMutexReadGuard<'a, T>, Box<dyn Error + 'a>> {
/// Provide write access to the underlying object, only a single mutable reference to the object exists.
pub fn write<'a>(&'a self) -> Result<BfSharedMutexWriteGuard<'a, T>, Box<dyn Error + 'a>> {
pub fn try_write<'a>(&'a self) -> Result<Option<BfSharedMutexWriteGuard<'a, T>>, Box<dyn Error + 'a>> {
/// Check if this instance's read lock is currently held (i.e., this instance's `busy` flag is set).