У меня есть нагрузочный тест (gmock), который использует многопоточность для добавления многих JSON сообщений в очередь. Что-то вроде:
TEST_F(Send_LoadTest, sendBatchLoadTest){
test = 2;
RUN_MULTIPLE_THREADS<LoadTest_ThreadParams>(this);
};
Это вызывает следующий код C ++ для построения очереди:
if (dataQueue.depth() < 500){
dataQueue.put(entry);
} else {
throw -1;
}
Я хочу добиться функциональности, где, если максимальная глубина очереди превышена, то у меня есть тест потоки спят немного, если они ловят исключение. Это позволило бы некоторым другим потокам отправителя C ++ очистить текущую очередь перед ее повторным добавлением.
Как бы я перехватил исключение в тесте gmock и заставил его спать, не мешая потокам отправителя?