From b4c198b0ef7ec521dce7d368aa3b912fed74e75f Mon Sep 17 00:00:00 2001 From: CoopCoding Date: Fri, 25 Jun 2021 12:35:09 +1000 Subject: [PATCH] Refactored getting cores count to be work cross platform. --- src/devedeng/configuration_data.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/devedeng/configuration_data.py b/src/devedeng/configuration_data.py index 28b63c5..d57646c 100644 --- a/src/devedeng/configuration_data.py +++ b/src/devedeng/configuration_data.py @@ -19,6 +19,7 @@ from gi.repository import GObject import os import pkg_resources +import platform class configuration(GObject.GObject): @@ -49,12 +50,11 @@ class configuration(GObject.GObject): return config_folder def _fill_config(self): - self.cores = 0 - proc_file = open("/proc/cpuinfo", "r") - for line in proc_file: - if (line.startswith("processor")): - self.cores += 1 - proc_file.close() + self.cores = os.cpu_count() + if 'sched_getaffinity' in dir(os): + self.cores = len(os.sched_getaffinity(0)) + if platform.system() == 'FreeBSD': + self.cores = int(os.popen("sysctl -n kern.smp.cores").read().split('\n')[0]) is_local = None self.log = ""