Skip to content
Snippets Groups Projects
Commit 775c4837 authored by Jeehoon Kang's avatar Jeehoon Kang
Browse files

Refactor the resources for ticket lock

parent def1099f
No related branches found
No related tags found
No related merge requests found
...@@ -49,10 +49,8 @@ Section proof. ...@@ -49,10 +49,8 @@ Section proof.
( lo ln : loc, ( lo ln : loc,
lk = (#lo, #ln)%V inv N (lock_inv γ lo ln R))%I. lk = (#lo, #ln)%V inv N (lock_inv γ lo ln R))%I.
Definition issued (γ : gname) (lk : val) (x : nat) (R : iProp Σ) : iProp Σ := Definition issued (γ : gname) (x : nat) : iProp Σ :=
( lo ln: loc, own γ ( (, GSet {[ x ]}))%I.
lk = (#lo, #ln)%V inv N (lock_inv γ lo ln R)
own γ ( (, GSet {[ x ]})))%I.
Definition locked (γ : gname) : iProp Σ := ( o, own γ ( (Excl' o, )))%I. Definition locked (γ : gname) : iProp Σ := ( o, own γ ( (Excl' o, )))%I.
...@@ -86,9 +84,9 @@ Section proof. ...@@ -86,9 +84,9 @@ Section proof.
Qed. Qed.
Lemma wait_loop_spec γ lk x R : Lemma wait_loop_spec γ lk x R :
{{{ issued γ lk x R }}} wait_loop #x lk {{{ RET #(); locked γ R }}}. {{{ is_lock γ lk R issued γ x }}} wait_loop #x lk {{{ RET #(); locked γ R }}}.
Proof. Proof.
iIntros (Φ) "Hl HΦ". iDestruct "Hl" as (lo ln) "(% & #? & Ht)". iIntros (Φ) "[Hl Ht] HΦ". iDestruct "Hl" as (lo ln) "(% & #?)".
iLöb as "IH". wp_rec. subst. wp_let. wp_proj. wp_bind (! _)%E. iLöb as "IH". wp_rec. subst. wp_let. wp_proj. wp_bind (! _)%E.
iInv N as (o n) "(Hlo & Hln & Ha)" "Hclose". iInv N as (o n) "(Hlo & Hln & Ha)" "Hclose".
wp_load. destruct (decide (x = o)) as [->|Hneq]. wp_load. destruct (decide (x = o)) as [->|Hneq].
...@@ -129,7 +127,7 @@ Section proof. ...@@ -129,7 +127,7 @@ Section proof.
rewrite Nat2Z.inj_succ -Z.add_1_r. by iFrame. } rewrite Nat2Z.inj_succ -Z.add_1_r. by iFrame. }
iModIntro. wp_if. iModIntro. wp_if.
iApply (wait_loop_spec γ (#lo, #ln) with "[-HΦ]"). iApply (wait_loop_spec γ (#lo, #ln) with "[-HΦ]").
+ rewrite /issued; eauto 10. + iFrame. rewrite /is_lock; eauto 10.
+ by iNext. + by iNext.
- wp_cas_fail. - wp_cas_fail.
iMod ("Hclose" with "[Hlo' Hln' Hauth Haown]") as "_". iMod ("Hclose" with "[Hlo' Hln' Hauth Haown]") as "_".
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment