<?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"
	>
<channel>
	<title>Comments on: g_thread_cancel</title>
	<atom:link href="http://blogs.gnome.org/hughsie/2007/11/20/g_thread_cancel/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/hughsie/2007/11/20/g_thread_cancel/</link>
	<description>Blog about geeky stuff</description>
	<pubDate>Tue, 07 Oct 2008 22:19:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Anonymous</title>
		<link>http://blogs.gnome.org/hughsie/2007/11/20/g_thread_cancel/#comment-141</link>
		<dc:creator>Anonymous</dc:creator>
		<pubDate>Tue, 20 Nov 2007 18:06:09 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/hughsie/2007/11/20/g_thread_cancel/#comment-141</guid>
		<description>I think the bottom line is that you can&apos;t safely cancel threads in C/POSIX unless they were written to push cleanup handlers: http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.genprogc/doc/genprogc/term_threads.htm And yeah, no one does that. Using separate processes isn&apos;t a panacea either; sending SIGKILL to a backend is just as unsafe if it wasn&apos;t written to expect to be killed.  For example, if it uses files as database locks.  Doing so won&apos;t happen to crash the main packagekit process, but the system is still hosed. Bottom line is each backend will have to be evaluated for cancelability, and will probably need to be canceled in a backend-specific way.</description>
		<content:encoded><![CDATA[<p>I think the bottom line is that you can&apos;t safely cancel threads in C/POSIX unless they were written to push cleanup handlers: <a href="http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.genprogc/doc/genprogc/term_threads.htm" rel="nofollow">http://publib.boulder.ibm.com/infocenter/systems/index.jsp?topic=/com.ibm.aix.genprogc/doc/genprogc/term_threads.htm</a> And yeah, no one does that. Using separate processes isn&apos;t a panacea either; sending SIGKILL to a backend is just as unsafe if it wasn&apos;t written to expect to be killed.  For example, if it uses files as database locks.  Doing so won&apos;t happen to crash the main packagekit process, but the system is still hosed. Bottom line is each backend will have to be evaluated for cancelability, and will probably need to be canceled in a backend-specific way.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
