Clarify that SyncOnceCell::set blocks.

Reading the discussion of this feature, I gained the mistaken impression that neither `set` nor `get` blocked, and thus calling `get` immediately after `set` was not guaranteed to succeed. It turns out that `set` *does* block, guaranteeing that the cell contains a value once `set` returns. This change updates the documentation to state that explicitly.
This commit is contained in:
Erik Jensen 2021-02-28 12:57:38 -08:00 committed by GitHub
parent 573a697a61
commit 2616960be2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -177,7 +177,10 @@ pub fn get_mut(&mut self) -> Option<&mut T> {
/// Sets the contents of this cell to `value`. /// Sets the contents of this cell to `value`.
/// ///
/// Returns `Ok(())` if the cell's value was updated. /// May block if another thread is currently attempting to initialize the cell. The cell is
/// guaranteed to contain a value when set returns, though not necessarily the one provided.
///
/// Returns `Ok(())` if the cell's value was set by this call.
/// ///
/// # Examples /// # Examples
/// ///