GLib-ERROR: создание каналов для GWakeup: слишком много открытых файлов - PullRequest
0 голосов
/ 29 мая 2020

Я получаю эту ошибку при запуске моей программы на C ++ под ubuntu 20.04 с clang 9:

GLib-ERROR: создание каналов для GWakeup: слишком много открытых файлов

Я знаю, что у меня много открытых файлов, это средство визуализации CGI с мозаичным кешем текстур mip-map, оно загружает только части изображений в кеш, когда это необходимо, а не полные изображения, таким образом сохраняя файлы открытыми. Существует около 3000 изображений, но перед сбоем он открылся только около 1000.

Я не понимаю, что эти файлы текстур читаются с помощью stdlib fopen (), а не GLib / GTK. Так почему ошибка исходит от GLib?

1 Ответ

0 голосов
/ 29 мая 2020

Ограничение на количество открытых файлов распространяется на процесс или на всю систему. Таким образом, не имеет значения, открываются они GLib или нет (который также использует те же вызовы операционной системы для открытия файлов). Если у вас одновременно открыто 1000 файлов с помощью fopen(), подумайте о том, чтобы закрыть их, если сможете.

...