<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self, oslom_exec, oslom_args, log_filename):
 """Run OSLOM and wait for the process to finish."""

        args = [oslom_exec, "-f", self.get_path(OslomRunner.TMP_EDGES_FILE)]
        args.extend(oslom_args)
        with open(log_filename, "w") as logwriter:
            start_time = time.time()
            retval = subprocess.call(
                args, cwd=self.working_dir,
                stdout=logwriter, stderr=subprocess.STDOUT)
            self.last_result = {
                "args": args, "retval": retval,
                "time": time.time() - start_time,
                "output_dir": self.get_path(
                    "{}_oslo_files".format(OslomRunner.TMP_EDGES_FILE))
            }
            return self.last_result