J'espérais que quelqu'un pourrait clarifier un aspect du comportement du garbage collector Julia et comment il interagit avec la mémoire allouée par un appel à une fonction C en utilisant ccall
.Garbage collection de Julia de données allouées ccall
Par exemple, je fais l'appel suivant:
setup::Ptr{Void} = ccall(("vDSP_DCT_CreateSetup", libacc), Ptr{Void},
(Ptr{Void}, UInt64, UInt64),
previous, length, dct_type)
Cette fonction alloue de la mémoire et la mémoire pour un initialise objet DFT_Setup
(les détails de ce ne sont pas pertinents). La bibliothèque fournit également un destructeur appelé sur le DFT_Setup
pour libérer la mémoire une fois que l'objet n'est plus nécessaire.
L'appel du destructeur est-il nécessaire dans Julia? Le garbage collector gère-t-il la libération DFT_Setup
lorsque cela est approprié ou dois-je appeler le concessionnaire C?
Merci! Je pensais que ce serait le cas, mais j'ai pensé qu'il serait sage de vérifier. –