diff --git a/packaging/packages/synit-config/files/usr/lib/synit/python/synit/daemon/interface_monitor.py b/packaging/packages/synit-config/files/usr/lib/synit/python/synit/daemon/interface_monitor.py index b0d8d3f..70d9a1f 100644 --- a/packaging/packages/synit-config/files/usr/lib/synit/python/synit/daemon/interface_monitor.py +++ b/packaging/packages/synit-config/files/usr/lib/synit/python/synit/daemon/interface_monitor.py @@ -109,7 +109,10 @@ def gather_events_from_socket(facet, callback, ip, loop): facet.log.debug('waiting for event...') events = ip.get() facet.log.debug(f'... got {len(events)} events') - turn.external(facet, lambda: callback(events), loop=loop) + # AAARGH python's horrible closure rules wrt mutability bite AGAIN!!!! + def handler_for_specific_events(events): + return lambda: callback(events) + turn.external(facet, handler_for_specific_events(events), loop=loop) except Exception as e: facet.log.debug(e) finally: @@ -172,6 +175,7 @@ def main(args): facet = turn.active_facet() loop = find_loop() + facet.log.info('Starting background netlink thread') threading.Thread( name='background-netlink-socket-read-thread', target=lambda: gather_events_from_socket(facet, handle_events, ip, loop)).start()