Кто-нибудь столкнулся с проблемой при утечке потоков NanoHttpd?NanoHttpd течет потоки
Дело в том, что библиотека создает новый поток для каждого входящего запроса, и когда я вижу ответ для этих запросов, внутренний поток, который выполнял обработку запросов, никогда не заканчивается. Это приводит к тому, что в конечном итоге у него появилось несколько сотен просочившихся потоков и сбоев приложений.
Мой код довольно простой и простой. Я просто подменю NanoHTTPD и переопределяет метод serve().
Я отлажена сам LIB и петли в следующем коде навсегда в классе NanoHTTPD:
while (!finalAccept.isClosed()) {
session.execute();
}
Есть предложения?
Update: Оказалось, что это и крайний случай, который связан с клиентским приложением, которое делает запросы в мое приложение, где запущен сервер HTTP. Когда я делаю запросы из Chrome или с помощью curl, он не течет нитями.
Я думаю, что ваш метод serve() необходим для ответа на этот вопрос. –
@PierreRust метод очень прост. Оказалось, что это и кросс-кейс, который подключен к клиентскому приложению, которое делает запросы к моему приложению. Когда я делаю запросы от Chrome или завитки, это не утечка потоков. –
Я думал об этом, ваш клиент, вероятно, не закрывает соединение, когда он закончил с ним. Тогда Nanohttp попытается прочесть в сокете, похоже, что механизм жесткого тайм-аута не выглядит. –