Fix the 'tuple not in deque' error that sometimes occurs when outputting a
tuple. This was caused by a tuple not being removed from its parent cluster
when being output in this location. While it would be removed from the global
tuple queue, the cluster could then be later used as part of a merge operation.
This could move the tuple to another 'live' cluster, which could then be output
at a later date, thus outputting the tuple again and failing.
This also fixes the other case that could happen when we can output using a
cluster in big_gamma. This currently never happens as clusters are not moved
around correctly, but fixes it for the future.
Also enforce an ordering, where we should suppress a tuple and then output it.
This is because suppression should not take long, whereas callback is unknown
to us. Thus, suppressing removes the tuple as early as possible.
Fix the 'tuple not in deque' error that sometimes occurs when outputting a tuple. This was caused by a tuple not being removed from its parent cluster when being output in this location. While it would be removed from the global tuple queue, the cluster could then be later used as part of a merge operation. This could move the tuple to another 'live' cluster, which could then be output at a later date, thus outputting the tuple again and failing.
This also fixes the other case that could happen when we can output using a cluster in
big_gamma
. This currently never happens as clusters are not moved around correctly, but fixes it for the future.Also enforce an ordering, where we should suppress a tuple and then output it. This is because suppression should not take long, whereas
callback
is unknown to us. Thus, suppressing removes the tuple as early as possible.