proxyutils: added GuardedHeap

Signed-off-by: Sven Peter <sven@svenpeter.dev>
This commit is contained in:
Sven Peter 2021-05-08 14:54:07 +02:00 committed by Hector Martin
parent 1c604a77c5
commit 34123e33d8

View file

@ -260,6 +260,39 @@ class RegMonitor(object):
print()
self.last = cur
class GuardedHeap:
def __init__(self, malloc, memalign, free):
self.ptrs = set()
self.malloc = malloc
self.memalign = memalign
self.free = free
def __enter__(self):
return self
def __exit__(self, *exc):
self.free_all()
return False
def malloc(self, sz):
ptr = self.malloc(sz)
self.ptrs.add(ptr)
return ptr
def memalign(self, align, sz):
ptr = self.memalign(align, sz)
self.ptrs.add(ptr)
return ptr
def free(self, ptr):
self.ptrs.remove(ptr)
self.free(ptr)
def free_all(self):
for ptr in self.ptrs:
self.free(ptr)
self.ptrs = set()
def bootstrap_port(iface, proxy):
try:
iface.dev.timeout = 0.15