STINNER Victor added the comment: Antoine Pitrou added the comment: > Ah, that's probably because socket.socket is a Python subclass. > What happens if you use _socket.socket directly instead?
Oh, I forgot this sublte implementation detail, _socket.socket base class vs socket.socket sublcass. Example with _socket: --- import _socket s=_socket.socket() s=None --- Ok, in this case sock_finalize() is called by sock_dealloc(). --- #0 sock_finalize (s=0x7ffff7eaad60) at /home/haypo/prog/python/default/Modules/socketmodule.c:4172 #1 0x00000000004d8f59 in PyObject_CallFinalizer (self=<_socket.socket at remote 0x7ffff7eaad60>) at Objects/object.c:294 #2 0x00000000004d8fcd in PyObject_CallFinalizerFromDealloc (self=<_socket.socket at remote 0x7ffff7eaad60>) at Objects/object.c:311 #3 0x00007ffff04e326a in sock_dealloc (s=0x7ffff7eaad60) at /home/haypo/prog/python/default/Modules/socketmodule.c:4192 #4 0x00000000004dc8ae in _Py_Dealloc (op=<_socket.socket at remote 0x7ffff7eaad60>) at Objects/object.c:1783 --- ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue26590> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com