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 <rep...@bugs.python.org>
<http://bugs.python.org/issue20519>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to