objective categorical abstract machine language personal data server

Concurrency bad

futur.blue 1f9a55df 98e3594d

verified
+3 -23
+3 -6
pegasus/lib/repository.ml
··· 645 645 let$! () = User_store.Bulk.put_blocks mst_blocks conn in 646 646 let$! () = 647 647 [%rapper execute {sql| DELETE FROM records |sql}] () conn 648 - in 649 - let$!* _ = 650 - Lwt.all 651 - [ User_store.Bulk.put_records record_data conn 652 - ; User_store.Bulk.put_blob_refs !blob_refs conn ] 653 - in 648 + in 649 + let$! () = User_store.Bulk.put_records record_data conn in 650 + let$! () = User_store.Bulk.put_blob_refs !blob_refs conn in 654 651 Lwt.return_ok () ) ) 655 652 in 656 653 (* clear cached block_map so it's rebuilt on next access *)
-17
pegasus/lib/util.ml
··· 33 33 let ( let$! ) m f = 34 34 match%lwt m with Ok x -> f x | Error e -> raise (Caqti_error.Exn e) 35 35 36 - (* let$! but for an array of results *) 37 - let ( let$!* ) m f = 38 - let%lwt results = 39 - match%lwt m with 40 - | xs -> 41 - Lwt.return @@ List.rev 42 - @@ List.fold_left 43 - (fun acc x -> 44 - match x with 45 - | Ok x -> 46 - x :: acc 47 - | Error e -> 48 - raise (Caqti_error.Exn e) ) 49 - [] xs 50 - in 51 - f results 52 - 53 36 (* unwraps an Lwt result, raising an exception if there's an error *) 54 37 let ( >$! ) m f = 55 38 match%lwt m with