Я работаю над wraping libcurl в luajit ffi. Мой финализатор не вызван.luajit ffi реализация финализатора кусков
local ffi = require("ffi")
ffi.cdef [[
typedef struct{} CURL;
CURL * curl_easy_init();
void curl_easy_cleanup(CURL *);
]]
local CURL_lib = ffi.load("../lib/libcurl.so")
local CURL_CTX
local CURL_CTX_mt = {
__gc = function() print "finalizing"; CURL_lib.curl_easy_cleanup(CURL_CTX); end
}
ffi.metatype("CURL", CURL_CTX_mt)
CURL_CTX = ffi.new("CURL[1]")
CURL_CTX = CURL_lib.curl_easy_init();
print "done"
Что мне здесь не хватает? : D
BTW CURL определяется как typedef void CURL;
Я уверен, что способ, которым я пытаюсь это сделать, недостаточно чист. Любой совет ?
eureka! : self answer - все еще интересуется комментариями, если есть какие-то вопиющие проблемы. не
, если вы обнаружите ответ самостоятельно, вы должны опубликовать его в качестве действительного ответа и принять его. – Necrolis
aah Я думал, что нужно ждать таймаута, прежде чем можно будет ответить самим автоответчиком. Благодарю. Ах, вы не можете принять свой собственный ответ в течение 2 дней. –