Tracking issue for std::sync::Once poisoning #33577

Open
durka opened this Issue May 12, 2016 · 4 comments

Comments

Projects
None yet
7 participants
@durka
Contributor

durka commented May 12, 2016

This tracks the once_poison feature, which currently covers the following things under std::sync::once:

  • OnceState, a struct describing the poisonedness of a Once
  • OnceState::poisoned, which reveals said poisonedness
  • Once::call_once_force, which is like call_once but ignores poisoning

durka added a commit to durka/rust that referenced this issue May 12, 2016

update tracking issue for once_poison
The tracking issue for once_poison was noted as #31688 which was closed, so it now points to the new #33577.

durka added a commit to durka/rust that referenced this issue May 21, 2016

update tracking issue for once_poison
The tracking issue for once_poison was noted as #31688 which was closed, so it now points to the new #33577.

Manishearth added a commit to Manishearth/rust that referenced this issue May 21, 2016

Rollup merge of #33578 - durka:patch-21, r=alexcrichton
update tracking issue for once_poison

The tracking issue for once_poison was noted as #31688 which was closed, so it now points to the new #33577.
@brson

This comment has been minimized.

Show comment
Hide comment
@brson

brson Dec 29, 2016

Contributor

This issue is primarily about the call_once_force method. Once implements poisoning, and this method is how you get around a poisoned Once.

Contributor

brson commented Dec 29, 2016

This issue is primarily about the call_once_force method. Once implements poisoning, and this method is how you get around a poisoned Once.

@frewsxcv

This comment has been minimized.

Show comment
Hide comment
@frewsxcv

frewsxcv Oct 21, 2017

Member

Anyone have insight why poisoned is not just a method on Once?

EDIT: nevermind

Member

frewsxcv commented Oct 21, 2017

Anyone have insight why poisoned is not just a method on Once?

EDIT: nevermind

@dtolnay

This comment has been minimized.

Show comment
Hide comment
@dtolnay

dtolnay Nov 19, 2017

Member

This naming seems inconsistent:

Could they both be is_poisoned since that one is stable already? Or is poisoned better enough that we should deprecate and rename the one on Mutex?

Member

dtolnay commented Nov 19, 2017

This naming seems inconsistent:

Could they both be is_poisoned since that one is stable already? Or is poisoned better enough that we should deprecate and rename the one on Mutex?

@joshlf

This comment has been minimized.

Show comment
Hide comment
@joshlf

joshlf Nov 19, 2017

Contributor

Relevant: #43448 contains discussion of whether forking a process should cause poisoning of various synchronization primitives. TLDR: An option is to make it so that if you fork while a Once is in use, thus invalidating it, that Once becomes poisoned.

Contributor

joshlf commented Nov 19, 2017

Relevant: #43448 contains discussion of whether forking a process should cause poisoning of various synchronization primitives. TLDR: An option is to make it so that if you fork while a Once is in use, thus invalidating it, that Once becomes poisoned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment