Mixing and dilution currently reserves its entire rectangle and the process simply assumes that it can move drops. When splash zones (#57) were added, if the splash zone is large enough that it overlaps a mixing zone, this means that an extraction point transfer will be held off until the mix is done. This works, but it slows down the transfer more than is necessary.
We should come up with a better interaction between the two, either changing the mixing process to use normal reservation (which I'm hesitant to do, as we really want all of the moves to happen in lockstep) or else adding something else to the reservation that can indicate to the reserving party that there's something (i.e., the process) that it needs to notify and get permission to usurp the reservation until it's given back.
Migrated from internal repository. Originally created by @EvanKirshenbaum on Jun 10, 2022 at 3:24 PM PDT.
Mixing and dilution currently reserves its entire rectangle and the process simply assumes that it can move drops. When splash zones (#57) were added, if the splash zone is large enough that it overlaps a mixing zone, this means that an extraction point transfer will be held off until the mix is done. This works, but it slows down the transfer more than is necessary.
We should come up with a better interaction between the two, either changing the mixing process to use normal reservation (which I'm hesitant to do, as we really want all of the moves to happen in lockstep) or else adding something else to the reservation that can indicate to the reserving party that there's something (i.e., the process) that it needs to notify and get permission to usurp the reservation until it's given back.
Migrated from internal repository. Originally created by @EvanKirshenbaum on Jun 10, 2022 at 3:24 PM PDT.