Gustavo J. A. M. Carneiro added the comment:
Well, this isn't a big problem, but I have an application that needs to run
with the GC disabled, since it causes pauses of a couple of seconds each time a
full collection runs (we have a few million objects allocated). I will run the
GC only once every 3 hours. So it would be nice if this uuid call didn't
generate cycles.
No, I didn't identify the cycle. All I know is that the garbage below is
produced. If the ctypes module is unavailable, uuid still works but doesn't
generate the garbage.
>>> gc.garbage
[(<type '_ctypes.Array'>,), {'raw': <attribute 'raw' of 'c_char_Array_16'
objects>, '__module__': 'ctypes', '__dict__': <attribute '__dict__' of
'c_char_Array_16' objects>, '__weakref__': <attribute '__weakref__' of
'c_char_Array_16' objects>, '_length_': 16, '_type_': <class 'ctypes.c_char'>,
'__doc__': None, 'value': <attribute 'value' of 'c_char_Array_16' objects>},
<class 'ctypes.c_char_Array_16'>, <attribute '__dict__' of 'c_char_Array_16'
objects>, <attribute '__weakref__' of 'c_char_Array_16' objects>, (<class
'ctypes.c_char_Array_16'>, <type '_ctypes.Array'>, <type '_ctypes._CData'>,
<type 'object'>), <attribute 'raw' of 'c_char_Array_16' objects>, <attribute
'value' of 'c_char_Array_16' objects>, (<type '_ctypes.Array'>,), {'raw':
<attribute 'raw' of 'c_char_Array_16' objects>, '__module__': 'ctypes',
'__dict__': <attribute '__dict__' of 'c_char_Array_16' objects>, '__weakref__':
<attribute '__weakref__' of 'c_char_Array_16' objects>, '_length_': 16,
'_type_': <class 'ctypes
.c_char'>, '__doc__': None, 'value': <attribute 'value' of 'c_char_Array_16'
objects>}, <class 'ctypes.c_char_Array_16'>, <attribute '__dict__' of
'c_char_Array_16' objects>, <attribute '__weakref__' of 'c_char_Array_16'
objects>, (<class 'ctypes.c_char_Array_16'>, <type '_ctypes.Array'>, <type
'_ctypes._CData'>, <type 'object'>), <attribute 'raw' of 'c_char_Array_16'
objects>, <attribute 'value' of 'c_char_Array_16' objects>, (<type
'_ctypes.Array'>,), {'raw': <attribute 'raw' of 'c_char_Array_16' objects>,
'__module__': 'ctypes', '__dict__': <attribute '__dict__' of 'c_char_Array_16'
objects>, '__weakref__': <attribute '__weakref__' of 'c_char_Array_16'
objects>, '_length_': 16, '_type_': <class 'ctypes.c_char'>, '__doc__': None,
'value': <attribute 'value' of 'c_char_Array_16' objects>}, <class
'ctypes.c_char_Array_16'>, <attribute '__dict__' of 'c_char_Array_16' objects>,
<attribute '__weakref__' of 'c_char_Array_16' objects>, (<class
'ctypes.c_char_Array_16'>, <type '_ctypes.Ar
ray'>, <type '_ctypes._CData'>, <type 'object'>), <attribute 'raw' of
'c_char_Array_16' objects>, <attribute 'value' of 'c_char_Array_16' objects>,
(<type '_ctypes.Array'>,), {'raw': <attribute 'raw' of 'c_char_Array_16'
objects>, '__module__': 'ctypes', '__dict__': <attribute '__dict__' of
'c_char_Array_16' objects>, '__weakref__': <attribute '__weakref__' of
'c_char_Array_16' objects>, '_length_': 16, '_type_': <class 'ctypes.c_char'>,
'__doc__': None, 'value': <attribute 'value' of 'c_char_Array_16' objects>},
<class 'ctypes.c_char_Array_16'>, <attribute '__dict__' of 'c_char_Array_16'
objects>, <attribute '__weakref__' of 'c_char_Array_16' objects>, (<class
'ctypes.c_char_Array_16'>, <type '_ctypes.Array'>, <type '_ctypes._CData'>,
<type 'object'>), <attribute 'raw' of 'c_char_Array_16' objects>, <attribute
'value' of 'c_char_Array_16' objects>]
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue20519>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com