Как я могу проверить, что ресурс (файловый кеш для вывода кэширования веб-приложения в Perl) ведет себя разумно при одновременном доступе к указанному общему ресурсу?
Я написал простой файловый кеш, написанный на Perl, который использует блокировку для сериализации доступа к записи, то есть, чтобы иметь только один процесс, который (повторно) генерирует запись в кеш. Этот кеш должен использоваться для кэширования вывода Perl webapp (gitweb), если это имеет значение.
Я хотел бы проверить, что указанный кеш ведет себя разумно при одновременном доступе, например, что только один процесс будет выполнять подпрограмму, используемую для генерации кеша ($cache->compute($key, sub { ... })
), что все процессы получат сгенерированные данные, что если процесс записывает запись в кеш умирает, она не блокирует процессы, ожидающие (к) повторного создания кеша и т. д.
Как мне это сделать? Есть ли готовый модуль Perl, который я могу использовать?