У меня возникли проблемы с решением проблемы в моем коде, надеюсь, вы сможете мне помочь.
У меня есть два модуля, A
и B
. Модуль A
отправляет запросы к B
, и после нескольких циклов B
отправляет многоцикловый ответ на A
. A
может содержать до 8 запросов, ожидающих ответа, и ответы от B
не обязательно возвращаются упорядоченными. Вот почему мы используем идентификатор для идентификации возвращаемых данных.
Чтобы проверить это поведение, у меня есть табло с несколькими шашками. Одна из проверок, которую я выполняю, — является ли идентификатор, используемый для запроса, бесплатным или нет. Для этого я сохраняю ассоциативный массив с идентификаторами, ожидающими ответа, и вставляю, проверяю и удаляю элементы по мере необходимости. Я контролирую это с двух интерфейсов и мониторов, один для запросов, а другой для ответов. Монитор ответов, являющийся ответами продолжительностью более одного цикла, ждет, пока не соберет все данные, чтобы отправить транзакцию на табло, где я обновляю свои структуры.
Проблема возникает в тот момент, когда A
видит, что он действительно получает правильный ответ от B
, освобождает идентификатор и может использовать его для нового запроса. Это происходит в некоторых моих симуляциях, и, поскольку я не получу транзакцию, пока не будет завершен весь ответ, блок A
выполняет новый запрос с идентификатором, который я не узнаю, что его можно использовать, пока не получу полную транзакцию. с монитора.
Любые идеи о том, как решить эту проблему? Спасибо!