nbronson/scala-stm — Issue #23: synchronize while-committing callbacks in CommitBarrier
Author: nbronson
Created: 2011-10-19 18:42:08+00:00
State: open
Labels: API, ENHANCEMENT

While-committing callbacks happen after the commit decision but before the effects of the transaction have become visible. We should extend the `CommitBarrier` semantics so that no effects from any commit barrier member become visible until all of the while-committing callbacks have completed.

One way to do this would be to add another callback method to the `ExternalDecider` trait, perhaps `endCommitting`. The commit barrier implementation would then perform a second barrier at this point. Various optimizations are possible if the second barrier only has arrivals for members that are known to have while-committing callbacks.