Fix GC race condition with callback pointer

This commit is contained in:
Kyle Lemons
2012-07-25 00:40:54 -07:00
parent 1723f5a08d
commit 8d73a5775d

View File

@@ -45,8 +45,6 @@ func (end *endpoint) allocTransfer() *Transfer {
xfer.length = C.int(len(buf))
xfer.num_iso_packets = iso_packets
xfer.user_data = (unsafe.Pointer)(&done)
C.libusb_set_iso_packet_lengths(xfer, packet_size)
pkts := *(*[]C.struct_libusb_packet_descriptor)(unsafe.Pointer(&reflect.SliceHeader{
Data: uintptr(unsafe.Pointer(&xfer.iso_packet_desc)),
@@ -60,6 +58,7 @@ func (end *endpoint) allocTransfer() *Transfer {
done: done,
buf: buf,
}
xfer.user_data = (unsafe.Pointer)(&t.done)
return t
}