def parallel_compilation_of_one_combination(self, combination_obj: Combination, combination_folder_path: str):
     compiler_name = combination_obj.get_compiler()
     parallel_compiler = self.__get_parallel_compiler_by_name(compiler_name)
     parallel_compiler.initiate_for_new_task(combination_obj.get_parameters().get_compilation_params(),
                                             combination_folder_path,
                                             self.make_absolute_file_list(combination_folder_path))
     pre_processing_args = dict()
     parallel_compiler.pre_processing(**pre_processing_args)
     parallel_compiler.compile()
     post_processing_args = {'files_loop_dict': self.files_loop_dict}
     parallel_compiler.post_processing(**post_processing_args)
     omp_rtl_params = combination_obj.get_parameters().get_omp_rtl_params()
     omp_directive_params = combination_obj.get_parameters().get_omp_directives_params()
     for file_dict in self.make_absolute_file_list(combination_folder_path):
         self.inject_rtl_params_to_loop(file_dict, omp_rtl_params)
         self.inject_directive_params_to_loop(file_dict, omp_directive_params)