/// Initialize the lock and return a reference to it.
///
/// The reference can be used to acquire the actual lock. Using a
/// reference prevents the underlying data from being moved while
/// the lock is in use.
///
/// Safety:
///  - No other process should try to initialize the lock at the same.
///  - The lock should not be held by another process.
///  - As long as the lock is in use, you can't initialize it again!
///  - You shouldn't be mutating the `RwLock` after `initialize`
///    or attached are called.
Initialize the lock and return a reference to it.
The reference can be used to acquire the actual lock. Using a
reference prevents the underlying data from being moved while
the lock is in use.

No other process should try to initialize the lock at the same.
The lock should not be held by another process.
As long as the lock is in use, you can't initialize it again.
You shouldn't be mutating the `RwLock` after `initialize`
or attached are called.
Initialize the lock and return a reference to it . The reference can be used to acquire the actual lock . Using a reference prevents the underlying data from being moved while the lock is in use . No other process should try to initialize the lock at the same . The lock should not be held by another process . As long as the lock is in use you can ' t initialize it again . You shouldn ' t be mutating the ` RwLock ` after ` initialize ` or attached are called .
pub unsafe fn initialize(&self) -> Result<RwLockRef<'_, T>, Errno> {
        let mut attr: libc::pthread_rwlockattr_t = std::mem::zeroed();
        Errno::from(libc::pthread_rwlockattr_init(&mut attr as *mut _))?;
        Self::set_prefer_writer(&mut attr as *mut _)?;
        // Allow access from multiple processes
        Errno::from(libc::pthread_rwlockattr_setpshared(
            &mut attr as *mut _,
            libc::PTHREAD_PROCESS_SHARED,
        ))?;
        Errno::from(libc::pthread_rwlock_init(
            self.lock_ptr(),
            &attr as *const _,
        ))?;
        Ok(self.attach())
    }
pub unsafe fn initialize ( & self ) -> Result < RwLockRef < ' _ , T > , Errno > { let mut attr : libc :: pthread_rwlockattr_t = std :: mem :: zeroed ( ) ; Errno :: from ( libc :: pthread_rwlockattr_init ( & mut attr as * mut _ ) ) ? ; Self :: set_prefer_writer ( & mut attr as * mut _ ) ? ; // Allow access from multiple processes Errno :: from ( libc :: pthread_rwlockattr_setpshared ( & mut attr as * mut _ , libc :: PTHREAD_PROCESS_SHARED , ) ) ? ; Errno :: from ( libc :: pthread_rwlock_init ( self . lock_ptr ( ) , & attr as * const _ , ) ) ? ; Ok ( self . attach ( ) ) }
Initialize the lock and return a reference to it.
Initialize the lock and return a reference to it .
&self