Yes this is unfortunate, the arg can only be something fii thinks is a
pointer.  You have to "box/unbox" it with ffi.new_handle/fii.from_handle

http://cffi.readthedocs.org/en/release-0.8/#misc-methods-on-ffi

-Michel


On Wed, Nov 20, 2013 at 4:09 AM, Michael Haberler <[email protected]>wrote:

> I'm stuck at passing 'self' as a timer callback argument:
>
> Class Test:
>
>     @ffi.callback('zloop_fn')
>     def timer_event(loop, item, arg):
>        print type(loop), type(item), type(arg)
>
>     def __init__(self):
>         ...
>         zloop.timer(self.loop, msec, 1, self.timer_event, self)
>         # this raises: TypeError: initializer for ctype 'void *' must be a
> cdata pointer, not instance
>
> how do I coerce this into action?
>
> - Michael
> _______________________________________________
> zeromq-dev mailing list
> [email protected]
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to