On Fri, 14 Sep 2007 17:43:39 -0400, James Y Knight <[EMAIL PROTECTED]> wrote: > >On Sep 14, 2007, at 3:30 PM, Jean-Paul Calderone wrote: >>On Fri, 14 Sep 2007 14:13:47 -0500, Justin Tulloss <[EMAIL PROTECTED]> >>wrote: >>>Your idea can be combined with the maxint/2 initial refcount for >>>>non-disposable objects, which should about eliminate thread-count >>>>updates >>>>for them. >>>>-- >>> >>>I don't really like the maxint/2 idea because it requires us to >>>differentiate between globals and everything else. Plus, it's a hack. I'd >>>like a more elegant solution if possible. >> >>It's not really a solution either. If your program runs for a couple >>minutes and then exits, maybe it won't trigger some catastrophic behavior >>from this hack, but if you have a long running process then you're almost >>certain to be screwed over by this (it wouldn't even have to be *very* >>long running - a month or two could do it on a 32bit platform). > >Not true: the refcount becoming 0 only calls a dealloc function.. For >objects which are not deletable, the dealloc function should simply set the >refcount back to maxint/2. Done. >
So, eg, replace the Py_FatalError in none_dealloc with an assignment to ob_refcnt? Good point, sounds like it could work (I'm pretty sure you know more about deallocation in CPython than I :). Jean-Paul _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com