put notes in a ..note section
This commit is contained in:
parent
f6ffb4b264
commit
1cfe009b96
|
@ -1022,18 +1022,18 @@ As we can easily check, our array is sorted now::
|
|||
1 5 7 33 99
|
||||
>>>
|
||||
|
||||
**Important notes for callback functions:**
|
||||
.. note::
|
||||
|
||||
Make sure you keep references to :func:`CFUNCTYPE` objects as long as they are
|
||||
used from C code. :mod:`ctypes` doesn't, and if you don't, they may be garbage
|
||||
collected, crashing your program when a callback is made.
|
||||
Make sure you keep references to :func:`CFUNCTYPE` objects as long as they
|
||||
are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be
|
||||
garbage collected, crashing your program when a callback is made.
|
||||
|
||||
Also, note that if the callback function is called in a thread created outside
|
||||
of Python's control (e.g. by the foreign code that calls the callback), ctypes
|
||||
creates a new dummy Python thread on every invocation. This behavior is correct
|
||||
for most purposes, but it means that values stored with `threading.local` will
|
||||
*not* survive across different callbacks, even when those calls are made from
|
||||
the same C thread.
|
||||
Also, note that if the callback function is called in a thread created
|
||||
outside of Python's control (e.g. by the foreign code that calls the
|
||||
callback), ctypes creates a new dummy Python thread on every invocation. This
|
||||
behavior is correct for most purposes, but it means that values stored with
|
||||
`threading.local` will *not* survive across different callbacks, even when
|
||||
those calls are made from the same C thread.
|
||||
|
||||
.. _ctypes-accessing-values-exported-from-dlls:
|
||||
|
||||
|
|
Loading…
Reference in New Issue