Refactor test/dune and add a failing test #2
1 changed files with 0 additions and 1 deletions
|
@ -688,7 +688,6 @@ module Make (Pclock : Mirage_clock.PCLOCK) = struct
|
||||||
| Some th -> th ) >>= fun () ->
|
| Some th -> th ) >>= fun () ->
|
||||||
|
|||||||
( let open Lwt_result.Infix in
|
( let open Lwt_result.Infix in
|
||||||
tree_root_hash_of_store t >>= fun tree_root_hash ->
|
tree_root_hash_of_store t >>= fun tree_root_hash ->
|
||||||
t.change_and_push_waiter <- Some th ;
|
|
||||||
let t' = { t with committed = Some tree_root_hash } in
|
let t' = { t with committed = Some tree_root_hash } in
|
||||||
hannes marked this conversation as resolved
Outdated
dinosaure
commented
`t.change_and_push` is already set 3 lines before.
hannes
commented
indeed, removed in indeed, removed in 750ec11
|
|||||||
f t' >>! fun res ->
|
f t' >>! fun res ->
|
||||||
(* XXX(dinosaure): we assume that only [change_and_push] can reset [t.committed] to [None] and
|
(* XXX(dinosaure): we assume that only [change_and_push] can reset [t.committed] to [None] and
|
||||||
|
|
Loading…
Reference in a new issue
the reason for this change is: we may have one change_and_push that is active, and when there are then multiple other change_and_push that should be executed, each needs to wait for the next one.
previously, the code had all other change_and_push wait for the same task -- and thus there may have been multiple waiting change_and_push waken up at the same time, leading to races.