Как выполнить код SystemVerilog при сборке мусора? - PullRequest
1 голос
/ 16 мая 2019

У меня есть класс SystemVerilog, который инкапсулирует класс C ++, используя chandle и DPI. Я хочу быть уверен, что деструктор класса C ++ вызывается при уничтожении объекта SystemVerilog. Насколько я могу судить, это не делается автоматически, и мне приходится вручную вызывать деструктор C ++ через DPI, когда я думаю, что мне больше не нужен экземпляр. Не очень элегантно

Есть ли способ указать, что определенный код должен выполняться для класса SV в GC? Похож на метод завершения Java.

1 Ответ

2 голосов
/ 16 мая 2019

В SystemVerilog нет конструкции, аналогичной finalize.Однако вы можете зарегистрировать обратный вызов VPI (cbReclaimObj) на дескрипторе.См. Раздел 38.36.1 LRM 1800-2017.

...