mirror of
https://github.com/AsahiLinux/m1n1
synced 2025-02-16 21:58:27 +00:00
proxyutils: added GuardedHeap
Signed-off-by: Sven Peter <sven@svenpeter.dev>
This commit is contained in:
parent
1c604a77c5
commit
34123e33d8
1 changed files with 33 additions and 0 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue