<?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/"
		>
<channel>
	<title>Comments on: Ruby threading bugfix: small fix goes a long way.</title>
	<atom:link href="http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/feed/" rel="self" type="application/rss+xml" />
	<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/</link>
	<description>technical ramblings from a wanna-be unix dinosaur</description>
	<lastBuildDate>Wed, 21 Jul 2010 07:31:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: rogerpack</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-566</link>
		<dc:creator>rogerpack</dc:creator>
		<pubDate>Fri, 23 Apr 2010 00:08:02 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-566</guid>
		<description>Appears the patch has been accepted upstream.&lt;br&gt;&lt;a href=&quot;http://blog.phusion.nl/2010/01/20/ruby-enterprise-edition-1-8-7-2010-01-released/&quot; rel=&quot;nofollow&quot;&gt;http://blog.phusion.nl/2010/01/20/ruby-enterpri...&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>Appears the patch has been accepted upstream.<br /><a href="http://blog.phusion.nl/2010/01/20/ruby-enterprise-edition-1-8-7-2010-01-released/" rel="nofollow"></a><a href="http://blog.phusion.nl/2010/01/20/ruby-enterpri.." rel="nofollow">http://blog.phusion.nl/2010/01/20/ruby-enterpri..</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruby Enterprise Edition 1.8.7-2009.10 released &#171; Phusion Corporate Blog</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-453</link>
		<dc:creator>Ruby Enterprise Edition 1.8.7-2009.10 released &#171; Phusion Corporate Blog</dc:creator>
		<pubDate>Mon, 26 Oct 2009 12:24:33 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-453</guid>
		<description>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</description>
		<content:encoded><![CDATA[<p>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Georgia Sewall</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-385</link>
		<dc:creator>Georgia Sewall</dc:creator>
		<pubDate>Wed, 15 Jul 2009 02:57:58 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-385</guid>
		<description>do you have a thread called &quot;shrinking thread&quot;...happened to see a quilting show on TV...guest was showing a pillow she had covered and one of the swatches was made w/shrinking thread...made the surface look like it was wrinkled....very atractive....</description>
		<content:encoded><![CDATA[<p>do you have a thread called &#8220;shrinking thread&#8221;&#8230;happened to see a quilting show on TV&#8230;guest was showing a pillow she had covered and one of the swatches was made w/shrinking thread&#8230;made the surface look like it was wrinkled&#8230;.very atractive&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruby Enterprise Edition third sponsorship campaign &#171; Phusion Corporate Blog</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-369</link>
		<dc:creator>Ruby Enterprise Edition third sponsorship campaign &#171; Phusion Corporate Blog</dc:creator>
		<pubDate>Wed, 27 May 2009 20:06:40 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-369</guid>
		<description>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</description>
		<content:encoded><![CDATA[<p>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruby enterprise edition &#171; Red Flag Research</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-365</link>
		<dc:creator>Ruby enterprise edition &#171; Red Flag Research</dc:creator>
		<pubDate>Wed, 20 May 2009 22:04:35 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-365</guid>
		<description>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</description>
		<content:encoded><![CDATA[<p>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruby Enterprise Edition 1.8.6-20090520 released &#171; Phusion Corporate Blog</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-363</link>
		<dc:creator>Ruby Enterprise Edition 1.8.6-20090520 released &#171; Phusion Corporate Blog</dc:creator>
		<pubDate>Wed, 20 May 2009 16:43:02 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-363</guid>
		<description>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</description>
		<content:encoded><![CDATA[<p>[...] enhancements for single-threaded applications (SIGVTALRM patch) and for Sparc machines (Sparc [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hongli Lai</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-241</link>
		<dc:creator>Hongli Lai</dc:creator>
		<pubDate>Mon, 27 Apr 2009 13:50:48 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-241</guid>
		<description>Nice! Have you considered submitting this patch to upstream?&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;&quot;What this means for the Ruby developer is that any thread which does I/O will cause the entire ruby process (the ruby interpretter and all ruby green threads) to block.&quot;&lt;/i&gt;&lt;br&gt;&lt;br&gt;Sorry, gotta disagree with you here. The MRI core I/O implementation is essentially non-blocking. If it detects that an I/O operation will block, it will simply set the thread&#039;s state to &#039;blocking on I/O&#039; and schedule another green thread instead.&lt;br&gt;&lt;br&gt;Consider this:&lt;br&gt;require &#039;thread&#039;&lt;br&gt;require &#039;socket&#039;&lt;br&gt;&lt;br&gt;thread = Thread.new do&lt;br&gt;	while true&lt;br&gt;		puts rand&lt;br&gt;		sleep 1&lt;br&gt;	end&lt;br&gt;end&lt;br&gt;&lt;br&gt;TCPSocket.new(&#039;www.google.com&#039;, 80).read&lt;br&gt;&lt;br&gt;Look! The thread keeps running even though we&#039;re blocked on a read operation.&lt;br&gt;&lt;br&gt;What is true however, is that native extensions that:&lt;br&gt;1. use blocking I/O&lt;br&gt;and&lt;br&gt;2. aren&#039;t explicitly programmed to support green threads (i.e. to cause a context switch when it detects a potentially blocking condition)&lt;br&gt;will block all green threads. The MySQL library is one such example.</description>
		<content:encoded><![CDATA[<p>Nice! Have you considered submitting this patch to upstream?</p>
<p><i>&#8220;What this means for the Ruby developer is that any thread which does I/O will cause the entire ruby process (the ruby interpretter and all ruby green threads) to block.&#8221;</i></p>
<p>Sorry, gotta disagree with you here. The MRI core I/O implementation is essentially non-blocking. If it detects that an I/O operation will block, it will simply set the thread&#39;s state to &#39;blocking on I/O&#39; and schedule another green thread instead.</p>
<p>Consider this:<br />require &#39;thread&#39;<br />require &#39;socket&#39;</p>
<p>thread = Thread.new do<br />	while true<br />		puts rand<br />		sleep 1<br />	end<br />end</p>
<p>TCPSocket.new(&#39;www.google.com&#39;, 80).read</p>
<p>Look! The thread keeps running even though we&#39;re blocked on a read operation.</p>
<p>What is true however, is that native extensions that:<br />1. use blocking I/O<br />and<br />2. aren&#39;t explicitly programmed to support green threads (i.e. to cause a context switch when it detects a potentially blocking condition)<br />will block all green threads. The MySQL library is one such example.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yo Dawg: Using a package management system to install a package management system at time to bleed by Joe Damato</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-240</link>
		<dc:creator>Yo Dawg: Using a package management system to install a package management system at time to bleed by Joe Damato</dc:creator>
		<pubDate>Mon, 27 Apr 2009 07:29:35 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-240</guid>
		<description>[...] intense. It is our PKGBUILD for Ruby, with a bunch of extra patches (fibers, ruby GC patches, and ruby thread bugfixes).  pkgname=ruby pkgver=1.8.7_p72 _pkgver=1.8.7-p72 pkgrel=27 pkgdesc=&quot;An object-oriented [...]</description>
		<content:encoded><![CDATA[<p>[...] intense. It is our PKGBUILD for Ruby, with a bunch of extra patches (fibers, ruby GC patches, and ruby thread bugfixes).  pkgname=ruby pkgver=1.8.7_p72 _pkgver=1.8.7-p72 pkgrel=27 pkgdesc=&quot;An object-oriented [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ruby Enterprise Edition 1.8.6-20090421 released &#171; Phusion Corporate Blog</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-231</link>
		<dc:creator>Ruby Enterprise Edition 1.8.6-20090421 released &#171; Phusion Corporate Blog</dc:creator>
		<pubDate>Wed, 22 Apr 2009 12:55:59 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-231</guid>
		<description>[...] Performance enhancements for single-threaded applications (SIGVTALRM patch). [...]</description>
		<content:encoded><![CDATA[<p>[...] Performance enhancements for single-threaded applications (SIGVTALRM patch). [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Lesperance</title>
		<link>http://timetobleed.com/ruby-threading-bugfix-small-fix-goes-a-long-way/comment-page-1/#comment-182</link>
		<dc:creator>Ian Lesperance</dc:creator>
		<pubDate>Thu, 05 Feb 2009 04:20:01 +0000</pubDate>
		<guid isPermaLink="false">http://timetobleed.com/?p=39#comment-182</guid>
		<description>We&#039;re using 1.8.5 p115 and are running into this SIGVTALRM weirdness with Phusion Passenger.  I tried adapting the patch for 1.8.5 and came up with the following:

http://www.elliterate.com/files/ruby_1.8.5_sigvtalrm_fix.patch

Any reason why this couldn&#039;t work?  It doesn&#039;t seem to be causing any problems (yet) on our staging server.</description>
		<content:encoded><![CDATA[<p>We&#8217;re using 1.8.5 p115 and are running into this SIGVTALRM weirdness with Phusion Passenger.  I tried adapting the patch for 1.8.5 and came up with the following:</p>
<p><a href="http://www.elliterate.com/files/ruby_1.8.5_sigvtalrm_fix.patch" rel="nofollow">http://www.elliterate.com/files/ruby_1.8.5_sigvtalrm_fix.patch</a></p>
<p>Any reason why this couldn&#8217;t work?  It doesn&#8217;t seem to be causing any problems (yet) on our staging server.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
