buildstats.py: close /proc/pressure/cpu file descriptor

Message ID 20220629200820.1948118-1-aryaman.gupta@windriver.com
State Accepted, archived
Commit 643653160cd77d346cdc9b9ec25c7212c7dfe176
Headers show
Series buildstats.py: close /proc/pressure/cpu file descriptor | expand

Commit Message

Aryaman Gupta June 29, 2022, 8:08 p.m. UTC
Use python 'with' symantics to ensure that the /proc/pressure/cpu file
descriptor used in SystemStats init is closed. Previously, this would
lead to a single file descriptor being leaked. For example:
   ResourceWarning: unclosed file <_io.BufferedReader name='/proc/pressure/cpu'>

Signed-off-by: Aryaman Gupta <aryaman.gupta@windriver.com>
---
 meta/lib/buildstats.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Patch

diff --git a/meta/lib/buildstats.py b/meta/lib/buildstats.py
index 5d32a81906..99a8303d5e 100644
--- a/meta/lib/buildstats.py
+++ b/meta/lib/buildstats.py
@@ -23,8 +23,8 @@  class SystemStats:
         # and ensure that the reduce_proc_pressure directory is not created.
         if os.path.exists("/proc/pressure"):
             try:
-                source = open('/proc/pressure/cpu', 'rb')
-                source.read()
+                with open('/proc/pressure/cpu', 'rb') as source:
+                    source.read()
                 pressuredir = os.path.join(bsdir, 'reduced_proc_pressure')
                 bb.utils.mkdirhier(pressuredir)
                 file_handlers.extend([('pressure/cpu', self._reduce_pressure),