Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Civl] strengthened Pop spec to standard linearizability #890

Merged
merged 1 commit into from
May 25, 2024

Conversation

shazqadeer
Copy link
Contributor

@shazqadeer shazqadeer commented May 25, 2024

When I presented the Treiber stack proof to @erickoskinen , @NamrathaG , and @menesro, it was pointed out that the spec of Pop is too weak and does not distinguish between two separate cases when no data is returned:

  • stack is empty and this is a successful outcome
  • stack is non-empty but the operation failed and could be retried

This PR strengthens the spec of Pop to address this shortcoming with the biggest changes being:

  • Pop returns an Option X rather than X; it is possible for success to be true and this value to be None
  • The abstractions of ReadTopOfStack on Push and Pop side are different; the one on Push side is a right mover but the one on Pop side is not a mover at all.

@shazqadeer shazqadeer merged commit 96a64bb into master May 25, 2024
5 checks passed
Copy link
Member

@bkragl bkragl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants