Большая нагрзука на процессор после GrdUnRegisterDongleNotification
Здравствуйте!
Использую Java API, версия SDK 7.0.286.0, OS Windows 8.1 x64. Использую библиотеку GrdApiJni64.dll из последнего SDK (SHA-1 2fbdbfa36f3b9aaaec3a0090813e7b52614f8acb).
Проблема заключается в использовании Notification API.
Очередность действий:
1. Инициализирую API.
2. Ищу ключ, если найден - логинюсь на нем через GrdLogin()
3. Регистрирую notification через GrdRegisterDongleNotification()
4. ...
5. Ключ вынимается, приходит сообщение в нотификатор.
6. Делаю GrdUnRegisterDongleNotification(), затем GrdLogout()
7. Процессор молотит 100% на одном ядре.
При попытке еще раз извлечь и вставить ключ (пункты 2-6) - рождается еще один Native поток (вижу через профайлер), который занимает уже и второе ядро. При вставке ключа потоки эти не уменьшают свою бешеную активность. И так до бесконечности. Вставляться может как один ключ, так и несколько (до 6) поочередно.
Вопрос: что я делаю не так?
Дополнительно: нужно ли каждый раз после вставки ключа делать GrdRegisterDongleNotification()? Если я делаю это один раз (при первой вставке ключа, так как без GrdLogin() мне это сделать не получится), то GrdNotifyMessage.DongleRemoved приходит далеко не всегда, читай: "не работает".
Прикрепил скриншот, где видны потоки. Момент их рождения совпадает с моментом вызова GrdUnRegisterDongleNotification(), то есть ключ извлекался три раза на примере.
При необходимости могу написать пример (на Java) или предоставить иные дополнительные данные.
С уважением,
Георгий.