-- parent script "CurlDetacher"
--****************************************************************************
-- @file Curl Callback Detach Class
-- @author Valentin Schmidt
--****************************************************************************
property ancestor
property _method
property _receiver
property _ch
property _customData
property _res
----------------------------------------
-- @constructor
----------------------------------------
on new (me, method, receiver, ch, customData)
me._method = method
me._receiver = receiver
me._ch = ch
me._customData = customData
me.ancestor = timeout().new(string(me), 0, #_call, me)
return me
end
----------------------------------------
-- use 1 ms single-shot timeout to create a new thread,
-- so scripting errors in callbacks don't fail silently
----------------------------------------
on _detach (me, res)
me._res = res
me.period = 1
end
----------------------------------------
-- we are detached from original thread, now call original callback
----------------------------------------
on _call (me, res)
me.forget()
call(me._method, me._receiver, me._res, me._ch, me._customData)
end