Семафор зажигания очищается автоматически? - PullRequest
1 голос
/ 04 мая 2020

В нашем проекте мы используем семафор Ignite для блокировки доступа к ресурсам. Ресурсы однозначно идентифицируются по UUID, и мы используем 1 семафор Ignite на ресурс. Мы не close() семафоры, потому что не очевидно, когда ресурс не используется. Я пытался использовать getQueueLength() и hasQueueThreads(), чтобы определить, смогу ли я close(), но это не работает.

Очевидно, что число этих семафоров будет расти. Воспламеняет ли автоматически удаляемые «старые» семафоры (которые не обновлялись в течение заданного периода времени)?

Если нет, что было бы лучшим вариантом для очистки этих «протекающих» семафоров

Спасибо!

1 Ответ

1 голос
/ 04 мая 2020

Да, вам нужно явно указать close() семафор, чтобы удалить его из кэша.

Затем вы можете использовать removed(), чтобы увидеть, был ли семафор уже закрыт и удален.

...