The standard library Maildrop api defines access to what are in essence concurrency-safe ref-cells.
The Maildrop api is implemented by the maildrop package.
The Maildrop api source code is in src/lib/src/lib/thread-kit/src/core-thread-kit/maildrop.api.
See also: Oneshot_Maildrop.
See also: Mailqueue.
See also: Mailcaster.
The above information is manually maintained and may contain errors.
api { Maildrop X; exception MAY_NOT_FILL_ALREADY_FULL_MAILDROP; make_empty_maildrop : Void -> Maildrop(X ); make_full_maildrop : X -> Maildrop(X ); put_in_maildrop : (Maildrop(X ) , X) -> Void; take_from_maildrop : Maildrop(X ) -> X; take_from_maildrop' : Maildrop(X ) -> Mailop(X ); nonblocking_take_from_maildrop : Maildrop(X ) -> Null_Or(X ); get_from_maildrop : Maildrop(X ) -> X; get_from_maildrop' : Maildrop(X ) -> Mailop(X ); nonblocking_get_from_maildrop : Maildrop(X ) -> Null_Or(X ); maildrop_swap : (Maildrop(X ) , X) -> X; maildrop_swap' : (Maildrop(X ) , X) -> Mailop(X ); same_maildrop : (Maildrop(X ) , Maildrop(X )) -> Bool; make_run_gun : Void -> {fire_run_gun:Void -> Void, run_gun':Run_Gun}; make_end_gun : Void -> {end_gun':End_Gun, fire_end_gun:Void -> Void}; maildrop_to_string : (Maildrop(X ) , String) -> String;};