<?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: Dr. Optimistic Locking</title>
	<atom:link href="http://terminalapp.net/dr-optimistic-locking/feed/" rel="self" type="application/rss+xml" />
	<link>http://terminalapp.net/dr-optimistic-locking/</link>
	<description>And the Cosmic AC said, &#34;LET THERE BE LIGHT!&#34; And there was light.</description>
	<lastBuildDate>Tue, 17 Jan 2012 01:42:16 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Kieran Kelleher</title>
		<link>http://terminalapp.net/dr-optimistic-locking/comment-page-1/#comment-957</link>
		<dc:creator>Kieran Kelleher</dc:creator>
		<pubDate>Wed, 09 Dec 2009 15:38:10 +0000</pubDate>
		<guid isPermaLink="false">http://terminalapp.net/?p=33#comment-957</guid>
		<description>Hi Miguel, I cam across this recently. I will post it here since it is kind of related:

[snip]
Radar #2280881 
Concurrent multithreaded saves may bypass optimistic locking check. 
Description: 
Although it has not yet been verified, EOF may have a brief window where two sessions modifying the same 
object will get last-one-wins behavior, instead of a merge (which is still last-one-wins at the attribute level). 
For example: 
Editing context 1 locks, modifies object 1 
Editing context 2 locks, modifies object 1 
Editing context 1 saves changes, unlocks, change notification enqueued on editing context 1 
Editing context 2 saves its modifications to object 1 without merging in editing context 1&#039;s modifications. 
Workaround: 
None. 
[/snip]</description>
		<content:encoded><![CDATA[<p>Hi Miguel, I cam across this recently. I will post it here since it is kind of related:</p>
<p>[snip]<br />
Radar #2280881<br />
Concurrent multithreaded saves may bypass optimistic locking check.<br />
Description:<br />
Although it has not yet been verified, EOF may have a brief window where two sessions modifying the same<br />
object will get last-one-wins behavior, instead of a merge (which is still last-one-wins at the attribute level).<br />
For example:<br />
Editing context 1 locks, modifies object 1<br />
Editing context 2 locks, modifies object 1<br />
Editing context 1 saves changes, unlocks, change notification enqueued on editing context 1<br />
Editing context 2 saves its modifications to object 1 without merging in editing context 1&#8242;s modifications.<br />
Workaround:<br />
None.<br />
[/snip]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Miguel Arroz</title>
		<link>http://terminalapp.net/dr-optimistic-locking/comment-page-1/#comment-795</link>
		<dc:creator>Miguel Arroz</dc:creator>
		<pubDate>Tue, 11 Nov 2008 00:16:40 +0000</pubDate>
		<guid isPermaLink="false">http://terminalapp.net/?p=33#comment-795</guid>
		<description>Hi! I&#039;m a little tired right now, but I suppose there&#039;s no really big difference, it&#039;s just a matter of style. Maybe it&#039;s a little more correct to start the try block after locking, because the finally block assumes we are locked. On the other hand, if something happens after the lock being effective but before the lock() call finishes, we&#039;ll lock our application forever. Anyway, it&#039;s probably not something that one should worry about too much.</description>
		<content:encoded><![CDATA[<p>Hi! I&#8217;m a little tired right now, but I suppose there&#8217;s no really big difference, it&#8217;s just a matter of style. Maybe it&#8217;s a little more correct to start the try block after locking, because the finally block assumes we are locked. On the other hand, if something happens after the lock being effective but before the lock() call finishes, we&#8217;ll lock our application forever. Anyway, it&#8217;s probably not something that one should worry about too much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kieran Kelleher</title>
		<link>http://terminalapp.net/dr-optimistic-locking/comment-page-1/#comment-794</link>
		<dc:creator>Kieran Kelleher</dc:creator>
		<pubDate>Mon, 10 Nov 2008 23:53:31 +0000</pubDate>
		<guid isPermaLink="false">http://terminalapp.net/?p=33#comment-794</guid>
		<description>Hi Miguel, I was looking at your article since I need to use your osc lock technique in some critical spots. Shouldn&#039;t the osc.lock() be outside of and just before the &quot;try&quot;? I always have done that, but when I saw your code, I second guessed myself and then searched for uses of .lock(); in WOnder source to see what the practice was there and they always do it before the try. ?</description>
		<content:encoded><![CDATA[<p>Hi Miguel, I was looking at your article since I need to use your osc lock technique in some critical spots. Shouldn&#8217;t the osc.lock() be outside of and just before the &#8220;try&#8221;? I always have done that, but when I saw your code, I second guessed myself and then searched for uses of .lock(); in WOnder source to see what the practice was there and they always do it before the try. ?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

