kextunload: у классов снова есть экземпляры

В аналогичном ключе к вопросу, размещенному здесь:
Невозможно выгрузить расширение ядра; У классов есть экземпляры
Я пытаюсь понять, что нужно сделать, чтобы решить это.

С нашим KEXT у нас есть демон launchctl, который запускается, ожидает загрузки kext, выполняет sysctl для загрузки конфигурации для KEXT.

Мы делаем это с помощью вызова kext registerService (): https://github.com/openzfsonosx/zfs/blob/master/module/zfs/zfs_osx.cpp#L192
и маленький «zconfigd» ждет его здесь:
https://github.com/openzfsonosx/zfs/blob/master/cmd/zconfigd/zconfigd.c#L186

Небольшой небольшой код, взятый из одного из примеров Apple. Так что я бы предположил, что он выпускает все, как ожидалось?

Если я пытаюсь разгрузить kext, он отказывается (на Sierra) из-за наличия экземпляров классов. Если я убью zconfigd (даже несмотря на то, что launchctl запустит новый), я могу его нормально загрузить. Предположительно я могу сделать это exit(0) после того, как sysctl был выполнен, было бы неплохо выяснить, почему он держится за Class в этом примере. Предположительно это что-то простое.

У нас есть еще одна проблема с классом, но это самое простое, я бы начала с маленьких шагов.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]