def main(): request = Request(p) queue = Queue() channel_1 = Channel(p1) channel_2 = Channel(p2) count = 0 for i in range(iterations): request.generate() if request.was_request(): if queue.is_empty(): queue.add_item() calculate(channel_1, channel_2, queue, request) else: calculate(channel_1, channel_2, queue, request) if not queue.is_empty(): request.add_discard() else: queue.add_item() else: calculate(channel_1, channel_2, queue, request) count += channel_1.get_value() count += channel_2.get_value() count += queue.get_value() statistics(channel_1, channel_2, request, count)