Skip to content

Commit 70e8a9b

Browse files
Merge pull request iovisor#3919 from terceiro/python-bpf-close
bcc: add method to close file descriptors
2 parents a184f09 + 63103fa commit 70e8a9b

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/python/bcc/__init__.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1736,6 +1736,20 @@ def add_module(modname):
17361736
def donothing(self):
17371737
"""the do nothing exit handler"""
17381738

1739+
1740+
def close(self):
1741+
"""close(self)
1742+
1743+
Closes all associated files descriptors. Attached BPF programs are not
1744+
detached.
1745+
"""
1746+
for name, fn in list(self.funcs.items()):
1747+
os.close(fn.fd)
1748+
del self.funcs[name]
1749+
if self.module:
1750+
lib.bpf_module_destroy(self.module)
1751+
self.module = None
1752+
17391753
def cleanup(self):
17401754
# Clean up opened probes
17411755
for k, v in list(self.kprobe_fds.items()):
@@ -1763,12 +1777,8 @@ def cleanup(self):
17631777
if self.tracefile:
17641778
self.tracefile.close()
17651779
self.tracefile = None
1766-
for name, fn in list(self.funcs.items()):
1767-
os.close(fn.fd)
1768-
del self.funcs[name]
1769-
if self.module:
1770-
lib.bpf_module_destroy(self.module)
1771-
self.module = None
1780+
1781+
self.close()
17721782

17731783
# Clean up ringbuf
17741784
if self._ringbuf_manager:

0 commit comments

Comments
 (0)