<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: best free() is exit()</title>
	<atom:link href="http://dom.as/2009/12/10/best-free-is-exit/feed/" rel="self" type="application/rss+xml" />
	<link>http://dom.as/2009/12/10/best-free-is-exit/</link>
	<description></description>
	<lastBuildDate>Sat, 17 Dec 2011 20:14:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Rich Farmbrough</title>
		<link>http://dom.as/2009/12/10/best-free-is-exit/#comment-1715</link>
		<dc:creator><![CDATA[Rich Farmbrough]]></dc:creator>
		<pubDate>Mon, 14 Dec 2009 17:16:52 +0000</pubDate>
		<guid isPermaLink="false">http://mituzas.lt/?p=674#comment-1715</guid>
		<description><![CDATA[Yes I had a similar but worse problem with a SQL database, it was taking too long to perform a query then when told to stop tried to roll-back the query. Even re-starting the database mean it tried to do hours of cleanup before letting a humble user in to drop the tables. The quickest solution was to delete and rebuild the (effectively) empty database.  And it was trying to be user friendly.]]></description>
		<content:encoded><![CDATA[<p>Yes I had a similar but worse problem with a SQL database, it was taking too long to perform a query then when told to stop tried to roll-back the query. Even re-starting the database mean it tried to do hours of cleanup before letting a humble user in to drop the tables. The quickest solution was to delete and rebuild the (effectively) empty database.  And it was trying to be user friendly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jay Pipes</title>
		<link>http://dom.as/2009/12/10/best-free-is-exit/#comment-1714</link>
		<dc:creator><![CDATA[Jay Pipes]]></dc:creator>
		<pubDate>Fri, 11 Dec 2009 14:34:13 +0000</pubDate>
		<guid isPermaLink="false">http://mituzas.lt/?p=674#comment-1714</guid>
		<description><![CDATA[In some cases I agree with you, Domas.  Memory allocated in static space (like some of the InnoDB data dictionary, nss lookup stuff, pcre state, etc, can be a little over-the-top to manually free at shutdown.

However, there are certain circumstances where the *order* of de-allocation makes a difference.  For instance, in Drizzle, shutting down global heap-allocated stuff before calling each plugin&#039;s destructor would be, well, not a good idea :)  So, I partly agree and partly disagree. :)  When in doubt, I always prefer explicit over implicit.

Cheers!
Jay]]></description>
		<content:encoded><![CDATA[<p>In some cases I agree with you, Domas.  Memory allocated in static space (like some of the InnoDB data dictionary, nss lookup stuff, pcre state, etc, can be a little over-the-top to manually free at shutdown.</p>
<p>However, there are certain circumstances where the *order* of de-allocation makes a difference.  For instance, in Drizzle, shutting down global heap-allocated stuff before calling each plugin&#8217;s destructor would be, well, not a good idea :)  So, I partly agree and partly disagree. :)  When in doubt, I always prefer explicit over implicit.</p>
<p>Cheers!<br />
Jay</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: walrus</title>
		<link>http://dom.as/2009/12/10/best-free-is-exit/#comment-1713</link>
		<dc:creator><![CDATA[walrus]]></dc:creator>
		<pubDate>Fri, 11 Dec 2009 08:46:39 +0000</pubDate>
		<guid isPermaLink="false">http://mituzas.lt/?p=674#comment-1713</guid>
		<description><![CDATA[yes, flushing the whole heap is much cheaper than every variable one by one.

That is strong side of erlang (for instance), where each thread has it&#039;s own heap. when the thread ends, erlang flushes the the whole heap of that thread.]]></description>
		<content:encoded><![CDATA[<p>yes, flushing the whole heap is much cheaper than every variable one by one.</p>
<p>That is strong side of erlang (for instance), where each thread has it&#8217;s own heap. when the thread ends, erlang flushes the the whole heap of that thread.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Davi Arnaut</title>
		<link>http://dom.as/2009/12/10/best-free-is-exit/#comment-1712</link>
		<dc:creator><![CDATA[Davi Arnaut]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 17:25:05 +0000</pubDate>
		<guid isPermaLink="false">http://mituzas.lt/?p=674#comment-1712</guid>
		<description><![CDATA[I think you are aiming at the wrong direction. If developers structured things in a proper way (eg, memory root), traversing should be minimal. Also, the kernel has to do this too, freeing memory is not that simple and can cause severe latency. Nonetheless, this is not about perfection, its about consistency (and special cases for tools are not welcome). There is also a reason why this must be done in mysql in some cases: embedded.]]></description>
		<content:encoded><![CDATA[<p>I think you are aiming at the wrong direction. If developers structured things in a proper way (eg, memory root), traversing should be minimal. Also, the kernel has to do this too, freeing memory is not that simple and can cause severe latency. Nonetheless, this is not about perfection, its about consistency (and special cases for tools are not welcome). There is also a reason why this must be done in mysql in some cases: embedded.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vladislav Vaintroub</title>
		<link>http://dom.as/2009/12/10/best-free-is-exit/#comment-1711</link>
		<dc:creator><![CDATA[Vladislav Vaintroub]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 16:46:53 +0000</pubDate>
		<guid isPermaLink="false">http://mituzas.lt/?p=674#comment-1711</guid>
		<description><![CDATA[I agree that complicated cleanup is a bad idea. And that people write this code to just please tools  that find false positives also does not sound good.]]></description>
		<content:encoded><![CDATA[<p>I agree that complicated cleanup is a bad idea. And that people write this code to just please tools  that find false positives also does not sound good.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Domas Mituzas</title>
		<link>http://dom.as/2009/12/10/best-free-is-exit/#comment-1710</link>
		<dc:creator><![CDATA[Domas Mituzas]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 16:14:37 +0000</pubDate>
		<guid isPermaLink="false">http://mituzas.lt/?p=674#comment-1710</guid>
		<description><![CDATA[Jan, feel free to put if(reallyreallycleanup) for your memleak finding code ;-)]]></description>
		<content:encoded><![CDATA[<p>Jan, feel free to put if(reallyreallycleanup) for your memleak finding code ;-)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jan Kneschke</title>
		<link>http://dom.as/2009/12/10/best-free-is-exit/#comment-1709</link>
		<dc:creator><![CDATA[Jan Kneschke]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 16:08:37 +0000</pubDate>
		<guid isPermaLink="false">http://mituzas.lt/?p=674#comment-1709</guid>
		<description><![CDATA[... making it impossible to find any memory leaks \o/ ... really ?]]></description>
		<content:encoded><![CDATA[<p>&#8230; making it impossible to find any memory leaks \o/ &#8230; really ?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

