Commit 5905f301 authored by Fabian Müller's avatar Fabian Müller
Browse files

Make file handling more thread-safe

parent f8ca8f80
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -296,9 +296,8 @@ class IvasModeAnalyzer(IvasModeCollector):
            keywords = [keywords]

        if os.path.exists(filename):
            fp = open(filename)
            with open(filename) as fp:
                loglines = fp.readlines()
            fp.close()
            matching_lines = [
                line
                for line in loglines
@@ -571,7 +570,7 @@ class IvasModeAnalyzer(IvasModeCollector):
        """
        loglines = []
        if os.path.exists(filename):
            fp = open(filename)
            with open(filename) as fp:
                loglines = fp.readlines()
        vg_errors = {"errors": 0, "contexts": 0, "heap_bytes": 0, "heap_blocks": 0}
        for line in loglines:
@@ -602,7 +601,7 @@ class IvasModeAnalyzer(IvasModeCollector):
        """
        loglines = []
        if os.path.exists(filename):
            fp = open(filename)
            with open(filename) as fp:
                loglines = fp.readlines()
        build_errors = 0
        for line in loglines:
@@ -1053,7 +1052,7 @@ class IvasModeAnalyzer(IvasModeCollector):
    def get_snr_report(file_name):
        SNR_report = {}
        if os.path.exists(file_name):
            fp = open(file_name, "r")
            with open(file_name) as fp:
                lines = fp.readlines()
            for line in lines:
                line = line.rstrip("\n")
+295 −297
Original line number Diff line number Diff line
@@ -260,7 +260,7 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
        dec_log_name = self.get_dec_log_file_name(
            self.dir_name, item_base_name, output_config
        )
        dec_log = open(dec_log_name, "w")
        with open(dec_log_name, "w") as dec_log:
            if config["enc_returncode"] == 0:
                dec_file_name = self.get_dec_file_name(
                    self.dir_name, item_base_name, output_config, out_ext
@@ -544,8 +544,8 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
                    pcm_log_name = os.path.join(
                        self.dir_name, "logs", pcm_log_name_tmp
                    )
                    pcm_log = open(pcm_log_name, "w")

                    with open(pcm_log_name, "w") as pcm_log:
                        pcm_name_res_tmp = pcm_name + ".res.wav"
                        pcm_name_cpy_tmp = pcm_name + ".cpy.wav"
                        in_file_name_transformed = self.transform_path(in_file_name)
@@ -623,8 +623,6 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):

                        in_config = config["cmd"]["in_config"].upper()

                    pcm_log.flush()
                    pcm_log.close()
                        # remove file lock
                        with self.lock:
                            os.remove(pcm_name_lock)
@@ -751,7 +749,7 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
                    for x in enc_cmd
                ]

            enc_log = open(enc_log_name, "w")
            with open(enc_log_name, "w") as enc_log:
                enc_log.write(" ".join(enc_cmd))
                try:
                    enc_result = subprocess.run(
@@ -785,7 +783,6 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
                            x.format(out_file=bs_out_file) if "{out_file}" in x else x
                            for x in proc_cmd
                        ]
                    enc_log = open(enc_log_name, "a")
                        enc_log.write(" ".join(proc_cmd))
                        proc_result = subprocess.run(
                            proc_cmd, capture_output=True, text=True, encoding="utf8"
@@ -1188,7 +1185,8 @@ class IvasModeRunner(IvasModeCollector.IvasModeCollector):
                ]
            ),
        )
        enc_log = open(enc_log_name, "w")

        with open(enc_log_name, "w") as enc_log:
            self.logger.info("Processing bit stream {}".format(enc_file_name))
            try:
                for processing in proc_chain: