on_topology_updated has been refactored to use dynamic_singlelisten_to arg to simplify ensuring FIFO event processing. So, the self._topology_updated_at safe lock guards were removed.
Side note
We could still completely leverage async but it'll be addressed in a future opportunity on issue #57
Local Tests
I ran a stress test with link_flap on a ring topology (same script as used on this related PR https://github.com/kytos-ng/topology/pull/132), 500 flaps over 5 iteration to simulate topology update, by the end of the test pathfinder still found both expected paths:
❯ sudo python flap.py
link_flap test iteration 0
waiting for 10 secs before next iteration
link_flap test iteration 1
waiting for 10 secs before next iteration
link_flap test iteration 2
waiting for 10 secs before next iteration
link_flap test iteration 3
waiting for 10 secs before next iteration
link_flap test iteration 4
waiting for 10 secs before next iteration
Related to https://github.com/kytos-ng/kytos/pull/399 (it depends on it)
Summary
on_topology_updated
has been refactored to usedynamic_single
listen_to
arg to simplify ensuring FIFO event processing. So, theself._topology_updated_at
safe lock guards were removed.Side note
We could still completely leverage
async
but it'll be addressed in a future opportunity on issue #57Local Tests
I ran a stress test with link_flap on a ring topology (same script as used on this related PR https://github.com/kytos-ng/topology/pull/132), 500 flaps over 5 iteration to simulate topology update, by the end of the test pathfinder still found both expected paths:
Mid test when the interface was going down, only one path was found as expected:
End-to-End Tests
I'll dispatch e2e exec shortly and I'll post the results here later.