Запрос клиента GRPC зависает на SIGINT на срок до 50 секунд

#c #linux #client #grpc #sigint

Вопрос:

Я работаю над C /Linux, и у меня возникли проблемы с GRPC (я новичок в GRPC). Когда клиент GRPC отправляет синхронный запрос и во время выполнения этого запроса поступает сообщение SIGINT, запрос может быть заблокирован на срок до 50 секунд вместо возврата в течение нескольких миллисекунд, как я ожидал. Я искал способ отменить запрос от обработчика SIGINT, но еще не нашел способ.

Я вижу, что поток заблокирован в CompletionQueue::Pluck() и, похоже, наконец истек. Я хочу попробовать вызвать cq-gt;Shutdown (), а затем очистить очередь. Однако я не могу найти способ доступа к cq*. Любые идеи будут оценены по достоинству.

Комментарии:

1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.