marionnet-dev team mailing list archive
-
marionnet-dev team
-
Mailing list archive
-
Message #00990
[Branch ~marionnet-drivers/ocamlbricks/trunk] Rev 554: Sixth satisfactory version (until the next) of algebraic channels, with support for ephemeral (no...
------------------------------------------------------------
revno: 554
committer: Jean-Vincent Loddo <loddo@xxxxxxxxxxxxxxxxxxxx>
branch nick: WORKING
timestamp: Mon 2020-07-06 22:24:22 +0000
message:
Sixth satisfactory version (until the next) of algebraic channels, with support for ephemeral (not persistent) structures. Stabilizations and notifications are performed only for writers and maintainers. During the access protocol to a channel, if the channel contains a persistent structure (by default) and the internal resistance has not really changed we do nothing (no stabilization, neither notifications to super-structures). The same (micro-)optimization cannot be applied to ephemeral (not persistent) structure, because for this kind of structures we cannot easily detect changes provoked by the `update' function (the 3th and 4th arguments of the body are the same object). Finally the more accurate tool to access a channel has the following signature:
val access :
?level:int -> ?ephemeral:unit -> ?enter:('a -> bool) -> ?notify:int list -> ?update:('a -> 'a) -> ?leave:('a -> bool) ->
'a t -> ('a FTCC.t -> 'a details -> 'a -> 'a -> 'b) -> (exn, 'b) Either.t
modified:
CORTEX/channel.ml
CORTEX/channel.mli
CORTEX/hublet.ml
CORTEX/hublet.mli
CORTEX/lazynel.ml
CORTEX/lazynel.mli
CORTEX/milner.ml
CORTEX/milner.mli
CORTEX/res.ml
STRUCTURES/either.ml
STRUCTURES/either.mli
tests/test_channel.ml
--
lp:ocamlbricks
https://code.launchpad.net/~marionnet-drivers/ocamlbricks/trunk
Your team marionnet-dev is subscribed to branch lp:ocamlbricks.
To unsubscribe from this branch go to https://code.launchpad.net/~marionnet-drivers/ocamlbricks/trunk/+edit-subscription