Hi,
I'm trying to handle data passed to Py Callback which is called from
C dll. Callback passes data to another thread using Queue module and
there the data are printed out.
If data is printed out in a callback itself it's ok. If I put on
queue and next get from queue in another thread script prints some
trash. Looks like the data is released when callback returned. I tired
to make d = copy.deepcopy(d ata), but it does not work - I got nothing.
Any idea why it's happening ?
--------------------- main thread --------
def callback(data, size):
myqueue.put((da ta, size))
mydll = cdll.MyDLL
cbproto = CFUNCTYPE(c_int , POINTER(c_char) , c_int)
mycallback = cbproto(callbac k)
mydll.RegisterC allback(mycallb ack)
---------------------------------- thread listener
----------------------
while True:
data, size = myqueue.get()
print "***", data[:size]
------------------------------------------------------------------------------
I'm trying to handle data passed to Py Callback which is called from
C dll. Callback passes data to another thread using Queue module and
there the data are printed out.
If data is printed out in a callback itself it's ok. If I put on
queue and next get from queue in another thread script prints some
trash. Looks like the data is released when callback returned. I tired
to make d = copy.deepcopy(d ata), but it does not work - I got nothing.
Any idea why it's happening ?
--------------------- main thread --------
def callback(data, size):
myqueue.put((da ta, size))
mydll = cdll.MyDLL
cbproto = CFUNCTYPE(c_int , POINTER(c_char) , c_int)
mycallback = cbproto(callbac k)
mydll.RegisterC allback(mycallb ack)
---------------------------------- thread listener
----------------------
while True:
data, size = myqueue.get()
print "***", data[:size]
------------------------------------------------------------------------------
Comment