try-catch

This commit is contained in:
Youngjoon Lee 2024-08-07 07:59:56 +09:00
parent 301c3e5be4
commit c93324da55
No known key found for this signature in database
GPG Key ID: 167546E2D1712F8C
3 changed files with 18 additions and 11 deletions

View File

@ -1,7 +1,7 @@
from typing import Any, Awaitable, Coroutine, TypeVar
import usim
from usim._primitives.task import Task, TaskCancelled
from usim._primitives.task import Task
from framework import framework

View File

@ -1,8 +1,8 @@
import concurrent.futures
import itertools
import os
import random
import time
import traceback
from collections import defaultdict
from copy import deepcopy
from datetime import datetime, timedelta
@ -122,8 +122,15 @@ def run_session(
paramsets_done: set[int] = set()
for future in concurrent.futures.as_completed(future_map):
paramset_id, paramset, iter_idx = future_map[future]
try:
dissemination_times = future.result()
except BaseException as e:
print(f"Error occurred in ParamSet-{paramset_id}, Iter-{iter_idx}: {e}")
traceback.print_exc()
raise
paramset_results[paramset_id][0].add(iter_idx)
paramset_results[paramset_id][1].extend(future.result())
paramset_results[paramset_id][1].extend(dissemination_times)
# If all iterations of the paramset are done, process the results
if len(paramset_results[paramset_id][0]) == paramset.num_iterations:
paramsets_done.add(paramset_id)
@ -204,9 +211,14 @@ def __run_iteration(cfg: Config) -> list[float]:
Run a single iteration of a certain parameter set.
The iteration uses the independent uSim instance.
"""
sim = Simulation(cfg)
usim.run(sim.run())
return sim.dissemination_times
try:
sim = Simulation(cfg)
usim.run(sim.run())
return sim.dissemination_times
except BaseException as e:
print(f"Error in running the iteration: {e}")
traceback.print_exc()
raise
def __process_paramset_result(

View File

@ -1,7 +1,5 @@
import random
import struct
from dataclasses import dataclass
from random import Random
from typing import Counter, Self
import usim
@ -9,11 +7,8 @@ import usim
from framework.framework import Queue
from framework.usim import Framework
from protocol.connection import LocalSimplexConnection, SimplexConnection
from protocol.nomssip import NomssipConfig
from protocol.temporalmix import TemporalMixConfig, TemporalMixType
from queuesim.config import Config
from queuesim.node import Node
from sim.config import LatencyConfig
from sim.connection import RemoteSimplexConnection
from sim.topology import build_full_random_topology