17 lines
455 B
Python
17 lines
455 B
Python
|
from __future__ import print_function
|
||
|
import sys
|
||
|
from weakref import ref
|
||
|
|
||
|
class ChannelMonitor:
|
||
|
def __init__(self):
|
||
|
self._open_channels = set()
|
||
|
def add(self, w):
|
||
|
wr = ref(w, self._lost)
|
||
|
self._open_channels.add(wr)
|
||
|
def _lost(self, wr):
|
||
|
print("Error: a Wormhole instance was not closed", file=sys.stderr)
|
||
|
def close(self, w):
|
||
|
self._open_channels.discard(ref(w))
|
||
|
|
||
|
monitor = ChannelMonitor() # singleton
|