pub type AzThreadCallbackInvoker = extern "C" fn(handle: u64, data: *const RefAny, info: *const ThreadSender, receiver: *const ThreadReceiver, out: *mut ());Expand description
Pointer-arg variant of this callback kind’s typedef.
The host’s libffi closure casts to this signature (which all managed-FFI runtimes can handle — args and return are passed by pointer, no aggregate-by-value anywhere). The static thunk in libazul does the by-value plumbing on the C ABI side.
LuaJIT FFI in particular cannot return aggregates larger than
8 bytes from a callback, so we use an out-pointer for the
return value uniformly across kinds — even for Update which
would fit in a register, so the macro stays homogeneous.