<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>chesstool Issue Tracker Rss Feed</title><link>http://chesstool.codeplex.com/workitem/list/basic</link><description>chesstool Issue Tracker Rss Description</description><item><title>Commented Issue: Wrong TimeSpan usage [8715]</title><link>http://chesstool.codeplex.com/workitem/8715</link><description>In a lot of places, you di timeSpan.Milliseconds where timeSpan.TotalMilliseconds should be used. For e.g. TimeSpan.FormMinutes&amp;#40;1&amp;#41;, Milliseconds is 0, but TotalMilliseconds is 60000.&lt;br /&gt;Please see the attached patch.&lt;br /&gt;Comments: ** Comment from web user: etobi ** &lt;p&gt;It&amp;#39;s not just a SVN thing &amp;#42;.patch&amp;#47;&amp;#42;.diff files are used for a looooong time to represent changes in plain text files. I think TFS can create patches with &amp;#96;tf diff&amp;#96; as well - but, I haven&amp;#39;t touched TFS for a long time in favour to Git.&lt;/p&gt;&lt;p&gt;Anyways&amp;#58; The changes at least fix an issue with some false-positive deadlock-warnings when e.g. Monitor.Wait&amp;#40;&amp;#64;lock, TimeSpan.FromHours&amp;#40;1&amp;#41;&amp;#41; is used &amp;#40;where .Milliseconds would return 0&amp;#41;.&lt;br /&gt;But after fixing this I ran into another issue - seems Chess doesn&amp;#39;t track all threads resulting in one thread using the original Monitor.Wait&amp;#40;&amp;#41; method and other threads to use the modified version of Monitor.PulseAll&amp;#40;&amp;#41;, causing the waiting thread to never wake up.&lt;/p&gt;</description><author>etobi</author><pubDate>Thu, 22 Sep 2011 17:55:20 GMT</pubDate><guid isPermaLink="false">Commented Issue: Wrong TimeSpan usage [8715] 20110922055520P</guid></item><item><title>Commented Issue: Wrong TimeSpan usage [8715]</title><link>http://chesstool.codeplex.com/workitem/8715</link><description>In a lot of places, you di timeSpan.Milliseconds where timeSpan.TotalMilliseconds should be used. For e.g. TimeSpan.FormMinutes&amp;#40;1&amp;#41;, Milliseconds is 0, but TotalMilliseconds is 60000.&lt;br /&gt;Please see the attached patch.&lt;br /&gt;Comments: ** Comment from web user: mormayo ** &lt;p&gt;Ah, some searching on Google tells me that patch looks like an SVN thing. Please forgive me as I do not have SVN installed &amp;#40;I use TFS&amp;#41; and hadn&amp;#39;t heard of it before.&lt;/p&gt;&lt;p&gt;I&amp;#39;ve pasted the contents below&amp;#58;&lt;br /&gt;Index&amp;#58; Framework4Wrappers&amp;#47;Task.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- Framework4Wrappers&amp;#47;Task.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; Framework4Wrappers&amp;#47;Task.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -219,7 &amp;#43;219,7 &amp;#64;&amp;#64;&lt;br /&gt;         &amp;#125;&lt;br /&gt;         public static bool Wait&amp;#40;Original&amp;#58;&amp;#58;Task self, TimeSpan timeout&amp;#41; &lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitRaw&amp;#40;self, timeout.Milliseconds, CancellationToken.None&amp;#41;&amp;#59; &lt;br /&gt;&amp;#43;            return WaitRaw&amp;#40;self, &amp;#40;int&amp;#41; timeout.TotalMilliseconds, CancellationToken.None&amp;#41;&amp;#59; &lt;br /&gt;         &amp;#125;&lt;br /&gt;         public static bool Wait&amp;#40;Original&amp;#58;&amp;#58;Task self, int millisecondsTimeout, CancellationToken cancellationToken&amp;#41; &lt;br /&gt;         &amp;#123;&lt;br /&gt;&amp;#64;&amp;#64; -349,7 &amp;#43;349,7 &amp;#64;&amp;#64;&lt;br /&gt;         &amp;#125;&lt;br /&gt;         public static bool WaitAll&amp;#40;Original&amp;#58;&amp;#58;Task&amp;#91;&amp;#93; tasks, TimeSpan timeout&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitAllRaw&amp;#40;tasks, timeout.Milliseconds, CancellationToken.None&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return WaitAllRaw&amp;#40;tasks, &amp;#40;int&amp;#41; timeout.TotalMilliseconds, CancellationToken.None&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt;         public static bool WaitAll&amp;#40;Original&amp;#58;&amp;#58;Task&amp;#91;&amp;#93; tasks, int millisecondsTimeout, CancellationToken cancellationToken&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;&amp;#64;&amp;#64; -369,7 &amp;#43;369,7 &amp;#64;&amp;#64;&lt;br /&gt;         &amp;#125;&lt;br /&gt;         public static int WaitAny&amp;#40;Original&amp;#58;&amp;#58;Task&amp;#91;&amp;#93; tasks, TimeSpan timeout&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitAnyRaw&amp;#40;tasks, timeout.Milliseconds, CancellationToken.None&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return WaitAnyRaw&amp;#40;tasks, &amp;#40;int&amp;#41; timeout.TotalMilliseconds, CancellationToken.None&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt;         public static int WaitAny&amp;#40;Original&amp;#58;&amp;#58;Task&amp;#91;&amp;#93; tasks, int millisecondsTimeout, CancellationToken cancellationToken&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;Index&amp;#58; Microsoft.ManagedChess.Framework35Wrappers&amp;#47;readerwriterlockslim.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- Microsoft.ManagedChess.Framework35Wrappers&amp;#47;readerwriterlockslim.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; Microsoft.ManagedChess.Framework35Wrappers&amp;#47;readerwriterlockslim.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -72,7 &amp;#43;72,7 &amp;#64;&amp;#64;&lt;br /&gt; &lt;br /&gt;         public static bool TryEnterReadLock&amp;#40;Original&amp;#58;&amp;#58;ReaderWriterLockSlim &amp;#64;lock, TimeSpan timeSpan&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return TryEnterRaw&amp;#40;&amp;#64;lock, timeSpan.Milliseconds, &amp;#34;TryEnterReadLock&amp;#34;, MODE.READ&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return TryEnterRaw&amp;#40;&amp;#64;lock, &amp;#40;int&amp;#41; timeSpan.TotalMilliseconds, &amp;#34;TryEnterReadLock&amp;#34;, MODE.READ&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static bool TryEnterWriteLock&amp;#40;Original&amp;#58;&amp;#58;ReaderWriterLockSlim &amp;#64;lock, int millisecondsTimeout&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -82,7 &amp;#43;82,7 &amp;#64;&amp;#64;&lt;br /&gt; &lt;br /&gt;         public static bool TryEnterWriteLock&amp;#40;Original&amp;#58;&amp;#58;ReaderWriterLockSlim &amp;#64;lock, TimeSpan timeSpan&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return TryEnterRaw&amp;#40;&amp;#64;lock, timeSpan.Milliseconds, &amp;#34;TryEnterWriteLock&amp;#34;, MODE.WRITE&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return TryEnterRaw&amp;#40;&amp;#64;lock, &amp;#40;int&amp;#41; timeSpan.TotalMilliseconds, &amp;#34;TryEnterWriteLock&amp;#34;, MODE.WRITE&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static bool TryEnterUpgradeableReadLock&amp;#40;Original&amp;#58;&amp;#58;ReaderWriterLockSlim &amp;#64;lock, int millisecondsTimeout&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -92,7 &amp;#43;92,7 &amp;#64;&amp;#64;&lt;br /&gt; &lt;br /&gt;         public static bool TryEnterUpgradeableReadLock&amp;#40;Original&amp;#58;&amp;#58;ReaderWriterLockSlim &amp;#64;lock, TimeSpan ts&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return TryEnterRaw&amp;#40;&amp;#64;lock, ts.Milliseconds, &amp;#34;TryEnterUpgradeableReadLock&amp;#34;, MODE.UPGRADEABLE_READ&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return TryEnterRaw&amp;#40;&amp;#64;lock, &amp;#40;int&amp;#41; ts.TotalMilliseconds, &amp;#34;TryEnterUpgradeableReadLock&amp;#34;, MODE.UPGRADEABLE_READ&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static bool TryEnterRaw&amp;#40;Original&amp;#58;&amp;#58;ReaderWriterLockSlim &amp;#64;lock, int millisecondsTimeout, string name, MODE mode&amp;#41;&lt;br /&gt;Index&amp;#58; ThreadingWrappers&amp;#47;Monitor.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- ThreadingWrappers&amp;#47;Monitor.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; ThreadingWrappers&amp;#47;Monitor.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -91,15 &amp;#43;91,15 &amp;#64;&amp;#64;&lt;br /&gt;         &amp;#47;&amp;#47;   an exclusive lock on the specified object.&lt;br /&gt;         public static bool TryEnter&amp;#40;object &amp;#64;lock, TimeSpan timeOut&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            MSyncVarOp mop &amp;#61; &amp;#40;timeOut.Milliseconds &amp;#61;&amp;#61; Timeout.Infinite&amp;#41; &amp;#63; MSyncVarOp.LOCK_ACQUIRE &amp;#58; MSyncVarOp.LOCK_TRYACQUIRE&amp;#59;&lt;br /&gt;-            return TryEnterRaw&amp;#40;&amp;#64;lock, timeOut.Milliseconds, mop, &amp;#34;Monitor.TryEnter&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            MSyncVarOp mop &amp;#61; &amp;#40;timeOut.TotalMilliseconds &amp;#61;&amp;#61; Timeout.Infinite&amp;#41; &amp;#63; MSyncVarOp.LOCK_ACQUIRE &amp;#58; MSyncVarOp.LOCK_TRYACQUIRE&amp;#59;&lt;br /&gt;&amp;#43;            return TryEnterRaw&amp;#40;&amp;#64;lock, &amp;#40;int&amp;#41; timeOut.TotalMilliseconds, mop, &amp;#34;Monitor.TryEnter&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static void TryEnter&amp;#40;object obj, TimeSpan millisecondsTimeout, ref bool tookLock&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;             global&amp;#58;&amp;#58;System.Diagnostics.Debug.Assert&amp;#40;&amp;#33;tookLock&amp;#41;&amp;#59;&lt;br /&gt;-            MSyncVarOp mop &amp;#61; &amp;#40;millisecondsTimeout.Milliseconds &amp;#61;&amp;#61; Timeout.Infinite&amp;#41; &amp;#63; MSyncVarOp.LOCK_ACQUIRE &amp;#58; MSyncVarOp.LOCK_TRYACQUIRE&amp;#59;&lt;br /&gt;-            tookLock &amp;#61; TryEnterRaw&amp;#40;obj, millisecondsTimeout.Milliseconds, mop, &amp;#34;Monitor.TryEnter&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            MSyncVarOp mop &amp;#61; &amp;#40;millisecondsTimeout.TotalMilliseconds &amp;#61;&amp;#61; Timeout.Infinite&amp;#41; &amp;#63; MSyncVarOp.LOCK_ACQUIRE &amp;#58; MSyncVarOp.LOCK_TRYACQUIRE&amp;#59;&lt;br /&gt;&amp;#43;            tookLock &amp;#61; TryEnterRaw&amp;#40;obj, &amp;#40;int&amp;#41; millisecondsTimeout.TotalMilliseconds, mop, &amp;#34;Monitor.TryEnter&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&amp;#9;&lt;br /&gt; &lt;br /&gt;         &amp;#47;&amp;#47; Monitor.TryEnter &amp;#40;Object&amp;#41;  Attempts to acquire an exclusive lock on the specified object. &lt;br /&gt;&amp;#64;&amp;#64; -281,7 &amp;#43;281,7 &amp;#64;&amp;#64;&lt;br /&gt;         &amp;#47;&amp;#47; - If the specified time-out interval elapses, the thread enters the ready queue.&lt;br /&gt;         public static bool Wait&amp;#40;object &amp;#64;lock, TimeSpan timeOut&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitRaw&amp;#40;&amp;#64;lock, timeOut.Milliseconds, false&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return WaitRaw&amp;#40;&amp;#64;lock, &amp;#40;int&amp;#41; timeOut.TotalMilliseconds, false&amp;#41;&amp;#59;&lt;br /&gt;          &amp;#125;&lt;br /&gt; &lt;br /&gt;         &amp;#47;&amp;#47; Monitor.Wait &amp;#40;Object, Int32, Boolean&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -301,7 &amp;#43;301,7 &amp;#64;&amp;#64;&lt;br /&gt;         &amp;#47;&amp;#47; - reacquires the domain afterward. &lt;br /&gt;         public static bool Wait&amp;#40;object &amp;#64;lock, TimeSpan timeOut, bool domain&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitRaw&amp;#40;&amp;#64;lock, timeOut.Milliseconds, domain&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return WaitRaw&amp;#40;&amp;#64;lock, &amp;#40;int&amp;#41; timeOut.TotalMilliseconds, domain&amp;#41;&amp;#59;&lt;br /&gt;          &amp;#125;&lt;br /&gt; &lt;br /&gt;         private static bool WaitRaw&amp;#40;object &amp;#64;lock, int timeOut, bool domain&amp;#41;&lt;br /&gt;Index&amp;#58; ThreadingWrappers&amp;#47;Mutex.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- ThreadingWrappers&amp;#47;Mutex.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; ThreadingWrappers&amp;#47;Mutex.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -71,7 &amp;#43;71,7 &amp;#64;&amp;#64;&lt;br /&gt; &lt;br /&gt;         public static bool WaitOne&amp;#40;Original&amp;#58;&amp;#58;Mutex mutex, TimeSpan timeOut, bool exitContext&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitOneRaw&amp;#40;mutex, timeOut.Milliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return WaitOneRaw&amp;#40;mutex, &amp;#40;int&amp;#41; timeOut.TotalMilliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         private static bool WaitOneRaw&amp;#40;Original&amp;#58;&amp;#58;Mutex mutex, int timeOut, bool domain&amp;#41;&lt;br /&gt;Index&amp;#58; ThreadingWrappers&amp;#47;Thread.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- ThreadingWrappers&amp;#47;Thread.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; ThreadingWrappers&amp;#47;Thread.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -66,7 &amp;#43;66,7 &amp;#64;&amp;#64;&lt;br /&gt;             Helper.SimpleWrap&amp;#60;bool&amp;#62;&amp;#40;&lt;br /&gt;                 delegate&amp;#40;ClrSyncManager manager&amp;#41;&lt;br /&gt;                 &amp;#123;&lt;br /&gt;-                    if &amp;#40;timeout.Milliseconds &amp;#60; Timeout.Infinite&amp;#41;&lt;br /&gt;&amp;#43;                    if &amp;#40;timeout.TotalMilliseconds &amp;#60; Timeout.Infinite&amp;#41;&lt;br /&gt;                         throw new ArgumentOutOfRangeException&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                     &amp;#47;&amp;#47; sleep with TimeSpan cannot be infinite&lt;br /&gt;                     manager.TaskYield&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&amp;#64;&amp;#64; -137,7 &amp;#43;137,7 &amp;#64;&amp;#64;&lt;br /&gt;         public static bool Join&amp;#40;Original&amp;#58;&amp;#58;Thread thread, TimeSpan timespan&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;             return Helper.SimpleWrap&amp;#60;bool&amp;#62;&amp;#40;&lt;br /&gt;-                delegate&amp;#40;ClrSyncManager m&amp;#41; &amp;#123; return JoinRaw&amp;#40;thread, m, timespan.Milliseconds&amp;#41;&amp;#59; &amp;#125;,&lt;br /&gt;&amp;#43;                delegate&amp;#40;ClrSyncManager m&amp;#41; &amp;#123; return JoinRaw&amp;#40;thread, m, &amp;#40;int&amp;#41; timespan.TotalMilliseconds&amp;#41;&amp;#59; &amp;#125;,&lt;br /&gt;                 delegate&amp;#40;&amp;#41; &amp;#123; return thread.Join&amp;#40;timespan&amp;#41;&amp;#59;&amp;#125;&lt;br /&gt;             &amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt;Index&amp;#58; ThreadingWrappers&amp;#47;threadpool.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- ThreadingWrappers&amp;#47;threadpool.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; ThreadingWrappers&amp;#47;threadpool.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -219,7 &amp;#43;219,7 &amp;#64;&amp;#64;&lt;br /&gt;             TimeSpan timeOut,&lt;br /&gt;             bool executeOnlyOnce&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return RegisterWaitForSingleObjectHelper&amp;#40;waitObject, callBack, state, timeOut.Milliseconds, executeOnlyOnce, true&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return RegisterWaitForSingleObjectHelper&amp;#40;waitObject, callBack, state, &amp;#40;long&amp;#41; timeOut.TotalMilliseconds, executeOnlyOnce, true&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static Original.RegisteredWaitHandle RegisterWaitForSingleObject&amp;#40;&lt;br /&gt;&amp;#64;&amp;#64; -259,7 &amp;#43;259,7 &amp;#64;&amp;#64;&lt;br /&gt;             TimeSpan ts,&lt;br /&gt;             bool executeOnlyOnce&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return RegisterWaitForSingleObjectHelper&amp;#40;waitObject, callBack, state, ts.Milliseconds, executeOnlyOnce, false&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return RegisterWaitForSingleObjectHelper&amp;#40;waitObject, callBack, state, &amp;#40;long&amp;#41; ts.TotalMilliseconds, executeOnlyOnce, false&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static Original.RegisteredWaitHandle UnsafeRegisterWaitForSingleObject&amp;#40;&lt;br /&gt;Index&amp;#58; ThreadingWrappers&amp;#47;Timer.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- ThreadingWrappers&amp;#47;Timer.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; ThreadingWrappers&amp;#47;Timer.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -232,9 &amp;#43;232,9 &amp;#64;&amp;#64;&lt;br /&gt; &lt;br /&gt;         public static Original&amp;#58;&amp;#58;Timer ___ctor_newobj&amp;#40;Original&amp;#58;&amp;#58;TimerCallback tc, object state, TimeSpan dueTime, TimeSpan period&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            if &amp;#40;dueTime.Milliseconds&amp;#60; 0 &amp;#38;&amp;#38; dueTime.Milliseconds &amp;#33;&amp;#61; Timeout.Infinite&amp;#41;&lt;br /&gt;&amp;#43;            if &amp;#40;dueTime.TotalMilliseconds&amp;#60; 0 &amp;#38;&amp;#38; dueTime.TotalMilliseconds &amp;#33;&amp;#61; Timeout.Infinite&amp;#41;&lt;br /&gt;                 throw new ArgumentOutOfRangeException&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;-            if &amp;#40;period.Milliseconds &amp;#60; 0 &amp;#38;&amp;#38; period.Milliseconds &amp;#33;&amp;#61; Timeout.Infinite&amp;#41;&lt;br /&gt;&amp;#43;            if &amp;#40;period.TotalMilliseconds &amp;#60; 0 &amp;#38;&amp;#38; period.TotalMilliseconds &amp;#33;&amp;#61; Timeout.Infinite&amp;#41;&lt;br /&gt;                 throw new ArgumentOutOfRangeException&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;             return Helper.SimpleWrap&amp;#60;Original&amp;#58;&amp;#58;Timer&amp;#62;&amp;#40;&lt;br /&gt;                 delegate&amp;#40;ClrSyncManager manager&amp;#41; &amp;#123; return TimerHelpers.CreateTimer&amp;#40;manager, tc, state, dueTime, period&amp;#41;&amp;#59; &amp;#125;,&lt;br /&gt;&amp;#64;&amp;#64; -328,7 &amp;#43;328,7 &amp;#64;&amp;#64;&lt;br /&gt; &lt;br /&gt;         public static bool Change&amp;#40;Original&amp;#58;&amp;#58;Timer t, TimeSpan dueTime, TimeSpan period&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return Change&amp;#40;t, &amp;#40;long&amp;#41;dueTime.Milliseconds, &amp;#40;long&amp;#41;period.Milliseconds&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return Change&amp;#40;t, &amp;#40;long&amp;#41;dueTime.TotalMilliseconds, &amp;#40;long&amp;#41;period.TotalMilliseconds&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static bool Change&amp;#40;Original&amp;#58;&amp;#58;Timer t, uint dueTime, uint period&amp;#41;&lt;br /&gt;Index&amp;#58; ThreadingWrappers&amp;#47;WaitHandle.cs&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;--- ThreadingWrappers&amp;#47;WaitHandle.cs&amp;#9;&amp;#40;revision 62424&amp;#41;&lt;br /&gt;&amp;#43;&amp;#43;&amp;#43; ThreadingWrappers&amp;#47;WaitHandle.cs&amp;#9;&amp;#40;working copy&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -137,7 &amp;#43;137,7 &amp;#64;&amp;#64;&lt;br /&gt;         &amp;#123;&lt;br /&gt;             if &amp;#40;h &amp;#61;&amp;#61; null&amp;#41;&lt;br /&gt;                 throw new NullReferenceException&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;-            return WaitOne&amp;#40;h, timeout.Milliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return WaitOne&amp;#40;h, &amp;#40;int&amp;#41; timeout.TotalMilliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static int WaitAny&amp;#40;Original&amp;#58;&amp;#58;WaitHandle&amp;#91;&amp;#93; waitHandles&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -162,7 &amp;#43;162,7 &amp;#64;&amp;#64;&lt;br /&gt; &lt;br /&gt;         public static int WaitAny&amp;#40;Original&amp;#58;&amp;#58;WaitHandle&amp;#91;&amp;#93; waitHandles, TimeSpan timeout, bool exitContext&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitAny&amp;#40;waitHandles, timeout.Milliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return WaitAny&amp;#40;waitHandles, &amp;#40;int&amp;#41; timeout.TotalMilliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static bool WaitAll&amp;#40;Original&amp;#58;&amp;#58;WaitHandle&amp;#91;&amp;#93; waitHandles&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -187,7 &amp;#43;187,7 &amp;#64;&amp;#64;&lt;br /&gt;         &lt;br /&gt;         public static bool WaitAll&amp;#40;Original&amp;#58;&amp;#58;WaitHandle&amp;#91;&amp;#93; waitHandles, TimeSpan timeout, bool exitContext&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return WaitAll&amp;#40;waitHandles, timeout.Milliseconds, exitContext&amp;#41;&amp;#59; &lt;br /&gt;&amp;#43;            return WaitAll&amp;#40;waitHandles, &amp;#40;int&amp;#41; timeout.TotalMilliseconds, exitContext&amp;#41;&amp;#59; &lt;br /&gt;         &amp;#125;&lt;br /&gt; &lt;br /&gt;         public static bool SignalAndWait&amp;#40;Original&amp;#58;&amp;#58;WaitHandle toSignal, Original&amp;#58;&amp;#58;WaitHandle toWaitOn&amp;#41;&lt;br /&gt;&amp;#64;&amp;#64; -243,7 &amp;#43;243,7 &amp;#64;&amp;#64;&lt;br /&gt;             TimeSpan timeout,&lt;br /&gt;             bool exitContext&amp;#41;&lt;br /&gt;         &amp;#123;&lt;br /&gt;-            return SignalAndWait&amp;#40;toSignal, toWaitOn, timeout.Milliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;&amp;#43;            return SignalAndWait&amp;#40;toSignal, toWaitOn, &amp;#40;int&amp;#41; timeout.TotalMilliseconds, exitContext&amp;#41;&amp;#59;&lt;br /&gt;         &amp;#125;&lt;br /&gt;     &amp;#125;&lt;/p&gt;</description><author>mormayo</author><pubDate>Thu, 22 Sep 2011 17:11:10 GMT</pubDate><guid isPermaLink="false">Commented Issue: Wrong TimeSpan usage [8715] 20110922051110P</guid></item><item><title>Commented Issue: Wrong TimeSpan usage [8715]</title><link>http://chesstool.codeplex.com/workitem/8715</link><description>In a lot of places, you di timeSpan.Milliseconds where timeSpan.TotalMilliseconds should be used. For e.g. TimeSpan.FormMinutes&amp;#40;1&amp;#41;, Milliseconds is 0, but TotalMilliseconds is 60000.&lt;br /&gt;Please see the attached patch.&lt;br /&gt;Comments: ** Comment from web user: etobi ** &lt;p&gt;Are you kidding me&amp;#63; &amp;#42;.patch is no recognized file format&amp;#63;&lt;/p&gt;&lt;p&gt;And if I&amp;#39;m posting an issue on chesstool.codeplex.com it&amp;#39;s obvious that I&amp;#39;m, referring to the Chess project, isn&amp;#39;t it&amp;#63; And all the buggy files were listed in the &amp;#42;.patch file. I&amp;#39;m not going to upload this again, so please take a look here&amp;#58;&lt;/p&gt;&lt;p&gt;http&amp;#58;&amp;#47;&amp;#47;pastie.org&amp;#47;2574671&lt;br /&gt;&lt;/p&gt;</description><author>etobi</author><pubDate>Thu, 22 Sep 2011 16:39:03 GMT</pubDate><guid isPermaLink="false">Commented Issue: Wrong TimeSpan usage [8715] 20110922043903P</guid></item><item><title>Commented Issue: Wrong TimeSpan usage [8715]</title><link>http://chesstool.codeplex.com/workitem/8715</link><description>In a lot of places, you di timeSpan.Milliseconds where timeSpan.TotalMilliseconds should be used. For e.g. TimeSpan.FormMinutes&amp;#40;1&amp;#41;, Milliseconds is 0, but TotalMilliseconds is 60000.&lt;br /&gt;Please see the attached patch.&lt;br /&gt;Comments: ** Comment from web user: mormayo ** &lt;p&gt;I have deleted the attachment as it&amp;#39;s not a recognized file format. If you have code, then attach a code file or copy-paste code to this issue. There is not much context on this item to do anything with it. What projects or files are you referring to&amp;#63;&lt;/p&gt;</description><author>mormayo</author><pubDate>Thu, 22 Sep 2011 15:58:45 GMT</pubDate><guid isPermaLink="false">Commented Issue: Wrong TimeSpan usage [8715] 20110922035845P</guid></item><item><title>Created Issue: Wrong TimeSpan usage [8715]</title><link>http://chesstool.codeplex.com/workitem/8715</link><description>In a lot of places, you di timeSpan.Milliseconds where timeSpan.TotalMilliseconds should be used. For e.g. TimeSpan.FormMinutes&amp;#40;1&amp;#41;, Milliseconds is 0, but TotalMilliseconds is 60000.&lt;br /&gt;Please see the attached patch.&lt;br /&gt;</description><author>etobi</author><pubDate>Thu, 22 Sep 2011 11:31:54 GMT</pubDate><guid isPermaLink="false">Created Issue: Wrong TimeSpan usage [8715] 20110922113154A</guid></item><item><title>Created Issue: Lazy&lt;T&gt; and Volatile causes Execution Timeout Error [8615]</title><link>http://chesstool.codeplex.com/workitem/8615</link><description>Hi there&amp;#33;&lt;br /&gt;&lt;br /&gt;I encountered another problem using Alpaca.&lt;br /&gt;I get an Execution Timeout Error with the hint to an &amp;#34;This is a strong indication of a livelock&amp;#34;. But to be honest, I&amp;#39;ve no idea where this might occur.&lt;br /&gt;Any help is highly welcome &amp;#58;-&amp;#41;&lt;br /&gt;&lt;br /&gt;Here&amp;#39;s my test code&amp;#58;&lt;br /&gt;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Threading.Tasks&amp;#59;&lt;br /&gt;using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace MOCTestProject&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class AlpacaTest7&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void VolatileTest&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var lazy1 &amp;#61; new Lazy&amp;#60;Item3&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Item3 item1 &amp;#61; null&amp;#59;&lt;br /&gt;            Item3 item2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62; &amp;#123; item1 &amp;#61; lazy1.Value&amp;#59; &amp;#125;,&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62; &amp;#123; item2 &amp;#61; lazy1.Value&amp;#59;  &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.IsNotNull&amp;#40;item1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.IsNotNull&amp;#40;item2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public class Item3&lt;br /&gt;        &amp;#123;&lt;br /&gt;            private volatile bool done&amp;#59;&lt;br /&gt;&lt;br /&gt;            public Item3&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                done &amp;#61; Text &amp;#33;&amp;#61; &amp;#34;Text&amp;#34;&amp;#59;&lt;br /&gt;                if &amp;#40;done &amp;#61;&amp;#61; false&amp;#41;&lt;br /&gt;                    Text &amp;#61; &amp;#34;Test&amp;#34;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public string Text &amp;#123; get&amp;#59; private set&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;</description><author>MatthiasFG</author><pubDate>Tue, 16 Aug 2011 11:14:36 GMT</pubDate><guid isPermaLink="false">Created Issue: Lazy&lt;T&gt; and Volatile causes Execution Timeout Error [8615] 20110816111436A</guid></item><item><title>Created Issue: Lazy&lt;T&gt; and nested lock causes Execution Timeout Error [8614]</title><link>http://chesstool.codeplex.com/workitem/8614</link><description>Hi there&amp;#33;&lt;br /&gt;&lt;br /&gt;I encountered another problem using Alpaca.&lt;br /&gt;I get an Execution Timeout Error with the hint to an &amp;#34;This is a strong indication of a livelock&amp;#34;. But to be honest, I&amp;#39;ve not idea where this might occur.&lt;br /&gt;Any help is highly welcome &amp;#58;-&amp;#41;&lt;br /&gt;&lt;br /&gt;Here&amp;#39;s my test code&amp;#58;&lt;br /&gt;&lt;br /&gt;using System&amp;#59;&lt;br /&gt;using System.Threading.Tasks&amp;#59;&lt;br /&gt;using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace MOCTestProject&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class AlpacaTest5&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void LazyTest&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;            &lt;br /&gt;            var lazy1 &amp;#61; new Lazy&amp;#60;Item&amp;#62;&amp;#40;&amp;#40;&amp;#41; &amp;#61;&amp;#62; new Item&amp;#40;&amp;#34;1&amp;#34;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Item item1 &amp;#61; null&amp;#59;&lt;br /&gt;            Item item2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62; &amp;#123; item1 &amp;#61; lazy1.Value&amp;#59; &amp;#125;,&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62; &amp;#123; item2 &amp;#61; lazy1.Value&amp;#59;  &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.IsNotNull&amp;#40;item1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.IsNotNull&amp;#40;item2&amp;#41;&amp;#59;             &lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public class Item&lt;br /&gt;        &amp;#123;&lt;br /&gt;            private readonly object syncObject &amp;#61; new object&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &lt;br /&gt;            public Item&amp;#40;string text&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                lock &amp;#40;syncObject&amp;#41;&lt;br /&gt;                    Text &amp;#61; text&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public string Text &amp;#123; get&amp;#59; private set&amp;#59; &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;-Matthias&lt;br /&gt;</description><author>MatthiasFG</author><pubDate>Tue, 16 Aug 2011 08:17:54 GMT</pubDate><guid isPermaLink="false">Created Issue: Lazy&lt;T&gt; and nested lock causes Execution Timeout Error [8614] 20110816081754A</guid></item><item><title>Commented Issue: Alpaca Test reports Data Race when using Lambdas [8081]</title><link>http://chesstool.codeplex.com/workitem/8081</link><description>Hi&amp;#33;&lt;br /&gt;&lt;br /&gt;running the given sample from below I get a Data Race reported for the &amp;#34;LambdaCausesDataRace&amp;#34; test and no Data Race for the &amp;#34;ForeachLoopCausesNoDataRace&amp;#34; test. Why&amp;#63;&lt;br /&gt;&lt;br /&gt;using System.Collections.Generic&amp;#59;&lt;br /&gt;using System.Linq&amp;#59;&lt;br /&gt;using System.Threading.Tasks&amp;#59;&lt;br /&gt;using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace MOCTestProject&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class AlpacaTest2&lt;br /&gt;    &amp;#123;&lt;br /&gt; &lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void ForeachLoopCausesNoDataRace&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var parameters &amp;#61; new&amp;#91;&amp;#93; &amp;#123; new object&amp;#40;&amp;#41;, &amp;#34;test&amp;#34;, 5 &amp;#125;&amp;#59;&lt;br /&gt;            string result1 &amp;#61; null&amp;#59;&lt;br /&gt;            string result2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result1 &amp;#61; ParametersToTypeListUsingForeachLoop&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;,&lt;br /&gt;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result2 &amp;#61; ParametersToTypeListUsingForeachLoop&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private static string ParametersToTypeListUsingForeachLoop&amp;#40;object&amp;#91;&amp;#93; parameters&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            List&amp;#60;string&amp;#62; result &amp;#61; new List&amp;#60;string&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            foreach &amp;#40;var p in parameters&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                result.Add&amp;#40;p &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; p.GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            return string.Join&amp;#40;&amp;#34;, &amp;#34;, result&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void LambdaCausesDataRace&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var parameters &amp;#61; new&amp;#91;&amp;#93; &amp;#123; new object&amp;#40;&amp;#41;, &amp;#34;test&amp;#34;, 5 &amp;#125;&amp;#59;&lt;br /&gt;            string result1 &amp;#61; null&amp;#59;&lt;br /&gt;            string result2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result1 &amp;#61; ParametersToTypeListUsingLambda&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;,&lt;br /&gt;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result2 &amp;#61; ParametersToTypeListUsingLambda&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private static string ParametersToTypeListUsingLambda&amp;#40;object&amp;#91;&amp;#93; parameters&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            return string.Join&amp;#40;&amp;#34;, &amp;#34;, parameters.Select&amp;#40;p &amp;#61;&amp;#62; p &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; p.GetType&amp;#40;&amp;#41;.Name&amp;#41;.ToArray&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;-Matthias&lt;br /&gt;Comments: ** Comment from web user: MatthiasFG ** &lt;p&gt;Looks like it&amp;#39;s an extension method issues.&lt;br /&gt;Can Alpaca&amp;#47;mchess handle extension methods&amp;#63;&lt;/p&gt;</description><author>MatthiasFG</author><pubDate>Mon, 15 Aug 2011 09:22:43 GMT</pubDate><guid isPermaLink="false">Commented Issue: Alpaca Test reports Data Race when using Lambdas [8081] 20110815092243A</guid></item><item><title>Commented Issue: Alpaca Test reports Data Race when using Lambdas [8081]</title><link>http://chesstool.codeplex.com/workitem/8081</link><description>Hi&amp;#33;&lt;br /&gt;&lt;br /&gt;running the given sample from below I get a Data Race reported for the &amp;#34;LambdaCausesDataRace&amp;#34; test and no Data Race for the &amp;#34;ForeachLoopCausesNoDataRace&amp;#34; test. Why&amp;#63;&lt;br /&gt;&lt;br /&gt;using System.Collections.Generic&amp;#59;&lt;br /&gt;using System.Linq&amp;#59;&lt;br /&gt;using System.Threading.Tasks&amp;#59;&lt;br /&gt;using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace MOCTestProject&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class AlpacaTest2&lt;br /&gt;    &amp;#123;&lt;br /&gt; &lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void ForeachLoopCausesNoDataRace&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var parameters &amp;#61; new&amp;#91;&amp;#93; &amp;#123; new object&amp;#40;&amp;#41;, &amp;#34;test&amp;#34;, 5 &amp;#125;&amp;#59;&lt;br /&gt;            string result1 &amp;#61; null&amp;#59;&lt;br /&gt;            string result2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result1 &amp;#61; ParametersToTypeListUsingForeachLoop&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;,&lt;br /&gt;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result2 &amp;#61; ParametersToTypeListUsingForeachLoop&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private static string ParametersToTypeListUsingForeachLoop&amp;#40;object&amp;#91;&amp;#93; parameters&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            List&amp;#60;string&amp;#62; result &amp;#61; new List&amp;#60;string&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            foreach &amp;#40;var p in parameters&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                result.Add&amp;#40;p &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; p.GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            return string.Join&amp;#40;&amp;#34;, &amp;#34;, result&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void LambdaCausesDataRace&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var parameters &amp;#61; new&amp;#91;&amp;#93; &amp;#123; new object&amp;#40;&amp;#41;, &amp;#34;test&amp;#34;, 5 &amp;#125;&amp;#59;&lt;br /&gt;            string result1 &amp;#61; null&amp;#59;&lt;br /&gt;            string result2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result1 &amp;#61; ParametersToTypeListUsingLambda&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;,&lt;br /&gt;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result2 &amp;#61; ParametersToTypeListUsingLambda&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private static string ParametersToTypeListUsingLambda&amp;#40;object&amp;#91;&amp;#93; parameters&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            return string.Join&amp;#40;&amp;#34;, &amp;#34;, parameters.Select&amp;#40;p &amp;#61;&amp;#62; p &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; p.GetType&amp;#40;&amp;#41;.Name&amp;#41;.ToArray&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;-Matthias&lt;br /&gt;Comments: ** Comment from web user: MatthiasFG ** &lt;p&gt;looks like its an extension methos issue.&lt;br /&gt;Can Alpaca&amp;#47;mchess handle extension methods&amp;#63;&lt;/p&gt;</description><author>MatthiasFG</author><pubDate>Mon, 15 Aug 2011 09:18:27 GMT</pubDate><guid isPermaLink="false">Commented Issue: Alpaca Test reports Data Race when using Lambdas [8081] 20110815091827A</guid></item><item><title>Closed Issue: Exception when repro'ing a test in debugger w/breakpoints set before/after preemptions [8483]</title><link>http://chesstool.codeplex.com/workitem/8483</link><description>This was reported by tball&amp;#58;&lt;br /&gt;&lt;br /&gt;alpaca&amp;#92;ChessTesting&amp;#92;ConcurrencyTools&amp;#92;RegressionTesting&amp;#92;MCUT.Framework&amp;#92;ConflictSerializabilityTestMethodTests.cs&lt;br /&gt; &lt;br /&gt;1.       comment out the ExpectedResult as below &lt;br /&gt;        &amp;#91;ConflictSerializabilityTestMethod&amp;#93;&lt;br /&gt;        &amp;#47;&amp;#47;&amp;#91;ExpectedResult&amp;#40;TestResultType.Error&amp;#41;&amp;#93;   &amp;#47;&amp;#47; TODO make special error type for these&amp;#63;&lt;br /&gt;        public void Test1&amp;#40;&amp;#41;&lt;br /&gt;         ...&lt;br /&gt;2.  Run Test1&amp;#40;&amp;#41; in alpaca to get an error.&lt;br /&gt;3.  Then try to &amp;#8220;Repro in Debugger&amp;#8221;, selecting &amp;#8220;break before&amp;#47;after preemptions&amp;#8221;.&lt;br /&gt;&lt;br /&gt;Result&amp;#58;&lt;br /&gt;mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.TestCaseRunnerEngine.PreProcessResults&amp;#40;Microsoft.Concurrency.TestTools.Execution.TestResultEntity testResult&amp;#41; Line 131 &amp;#43; 0x1c bytes              C&amp;#35;&lt;br /&gt;               mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.Program.RunTestCaseGetResult&amp;#40;string testCaseFilePath&amp;#41; Line 335 &amp;#43; 0xe bytes   C&amp;#35;&lt;br /&gt;               mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.Program.RunTestCase&amp;#40;string testCaseFilePath&amp;#41; Line 289 &amp;#43; 0x9 bytes   C&amp;#35;&lt;br /&gt;               mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.Program.Main&amp;#40;string&amp;#91;&amp;#93; args&amp;#41; Line 209 &amp;#43; 0xc bytes     C&amp;#35;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        internal TestResultEntity PreProcessResults&amp;#40;TestResultEntity testResult&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            return runner.PreProcessResults&amp;#40;metadata, testResult&amp;#41;&amp;#59; &amp;#60;&amp;#60;&amp;#60;&amp;#60; null ref on &amp;#39;runner&amp;#39;&lt;br /&gt;        &amp;#125;&lt;br /&gt;Comments: Resolved with changeset 60543.</description><author>mormayo</author><pubDate>Fri, 15 Jul 2011 05:44:45 GMT</pubDate><guid isPermaLink="false">Closed Issue: Exception when repro'ing a test in debugger w/breakpoints set before/after preemptions [8483] 20110715054445A</guid></item><item><title>Created Issue: Exception when repro'ing a test in debugger w/breakpoints set before/after preemptions [8483]</title><link>http://chesstool.codeplex.com/workitem/8483</link><description>This was reported by tball&amp;#58;&lt;br /&gt;&lt;br /&gt;alpaca&amp;#92;ChessTesting&amp;#92;ConcurrencyTools&amp;#92;RegressionTesting&amp;#92;MCUT.Framework&amp;#92;ConflictSerializabilityTestMethodTests.cs&lt;br /&gt; &lt;br /&gt;1.       comment out the ExpectedResult as below &lt;br /&gt;        &amp;#91;ConflictSerializabilityTestMethod&amp;#93;&lt;br /&gt;        &amp;#47;&amp;#47;&amp;#91;ExpectedResult&amp;#40;TestResultType.Error&amp;#41;&amp;#93;   &amp;#47;&amp;#47; TODO make special error type for these&amp;#63;&lt;br /&gt;        public void Test1&amp;#40;&amp;#41;&lt;br /&gt;         ...&lt;br /&gt;2.  Run Test1&amp;#40;&amp;#41; in alpaca to get an error.&lt;br /&gt;3.  Then try to &amp;#8220;Repro in Debugger&amp;#8221;, selecting &amp;#8220;break before&amp;#47;after preemptions&amp;#8221;.&lt;br /&gt;&lt;br /&gt;Result&amp;#58;&lt;br /&gt;mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.TestCaseRunnerEngine.PreProcessResults&amp;#40;Microsoft.Concurrency.TestTools.Execution.TestResultEntity testResult&amp;#41; Line 131 &amp;#43; 0x1c bytes              C&amp;#35;&lt;br /&gt;               mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.Program.RunTestCaseGetResult&amp;#40;string testCaseFilePath&amp;#41; Line 335 &amp;#43; 0xe bytes   C&amp;#35;&lt;br /&gt;               mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.Program.RunTestCase&amp;#40;string testCaseFilePath&amp;#41; Line 289 &amp;#43; 0x9 bytes   C&amp;#35;&lt;br /&gt;               mcut.exe&amp;#33;Microsoft.Concurrency.TestTools.UnitTesting.MCutConsole.Program.Main&amp;#40;string&amp;#91;&amp;#93; args&amp;#41; Line 209 &amp;#43; 0xc bytes     C&amp;#35;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        internal TestResultEntity PreProcessResults&amp;#40;TestResultEntity testResult&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            return runner.PreProcessResults&amp;#40;metadata, testResult&amp;#41;&amp;#59; &amp;#60;&amp;#60;&amp;#60;&amp;#60; null ref on &amp;#39;runner&amp;#39;&lt;br /&gt;        &amp;#125;&lt;br /&gt;</description><author>mormayo</author><pubDate>Fri, 15 Jul 2011 05:32:25 GMT</pubDate><guid isPermaLink="false">Created Issue: Exception when repro'ing a test in debugger w/breakpoints set before/after preemptions [8483] 20110715053225A</guid></item><item><title>Commented Feature: Create Ribbon Bar to replace right-click menus [8237]</title><link>http://chesstool.codeplex.com/workitem/8237</link><description>This feature has been discussed by Tom and Joe to improve usability. The new menu bar ribbon will be modeled to look similar to Office 2010&amp;#39;s ribbon bar system.&lt;br /&gt;Comments: ** Comment from web user: MatthiasFG ** &lt;p&gt;nice to hear but to be honest, I would like to see my current problems fixed.&lt;/p&gt;&lt;p&gt;-Matthias&lt;/p&gt;</description><author>MatthiasFG</author><pubDate>Thu, 02 Jun 2011 09:25:13 GMT</pubDate><guid isPermaLink="false">Commented Feature: Create Ribbon Bar to replace right-click menus [8237] 20110602092513A</guid></item><item><title>Created Issue: Alpaca crashes on static lock object [8320]</title><link>http://chesstool.codeplex.com/workitem/8320</link><description>Hi&amp;#33;&lt;br /&gt;&lt;br /&gt;I made a very simple sample &amp;#40;see attached file&amp;#41; which will crash an Alpca Schedule Test Run.&lt;br /&gt;What is &amp;#34;special&amp;#34; about the sample is, that it uses a static class which in turn has a lock on a static sync object.&lt;br /&gt;But I really have no idea why the abnormal test program termination of Alpaca happens.&lt;br /&gt;&lt;br /&gt;BTW&amp;#58; I hope that any of me reported errors&amp;#47;problems will get fixed anytime.&lt;br /&gt;&lt;br /&gt;-Matthias&lt;br /&gt;</description><author>MatthiasFG</author><pubDate>Thu, 02 Jun 2011 09:23:49 GMT</pubDate><guid isPermaLink="false">Created Issue: Alpaca crashes on static lock object [8320] 20110602092349A</guid></item><item><title>Commented Feature: Create Ribbon Bar to replace right-click menus [8237]</title><link>http://chesstool.codeplex.com/workitem/8237</link><description>This feature has been discussed by Tom and Joe to improve usability. The new menu bar ribbon will be modeled to look similar to Office 2010&amp;#39;s ribbon bar system.&lt;br /&gt;Comments: Associated with changeset 58275.</description><author>mormayo</author><pubDate>Wed, 11 May 2011 13:09:19 GMT</pubDate><guid isPermaLink="false">Commented Feature: Create Ribbon Bar to replace right-click menus [8237] 20110511010919P</guid></item><item><title>Created Feature: Create Ribbon Bar to replace right-click menus [8237]</title><link>http://chesstool.codeplex.com/workitem/8237</link><description>This feature has been discussed by Tom and Joe to improve usability. The new menu bar ribbon will be modeled to look similar to Office 2010&amp;#39;s ribbon bar system.&lt;br /&gt;</description><author>mormayo</author><pubDate>Wed, 11 May 2011 13:08:33 GMT</pubDate><guid isPermaLink="false">Created Feature: Create Ribbon Bar to replace right-click menus [8237] 20110511010833P</guid></item><item><title>Closed Feature: One-Click to Repro and view in Concurrency Explorer (CE) [7687]</title><link>http://chesstool.codeplex.com/workitem/7687</link><description>We want a easier way for students to get the CE open.&lt;br /&gt;Furthermore, it&amp;#39;s confusing that you can right-click on a task to do a repro but the CE doesn&amp;#39;t open correctly. Just elimitate it and only enable it to be done from the Chess Result UI node.&lt;br /&gt;Comments: Resolved with changeset 58063.</description><author>mormayo</author><pubDate>Thu, 05 May 2011 03:15:08 GMT</pubDate><guid isPermaLink="false">Closed Feature: One-Click to Repro and view in Concurrency Explorer (CE) [7687] 20110505031508A</guid></item><item><title>Commented Issue: Alpaca Test reports Data Race but don't know why [8077]</title><link>http://chesstool.codeplex.com/workitem/8077</link><description>I wrote some Alpaca Tests and really like the tool and it helped me a lot in finding bad code.&lt;br /&gt;But with the following lines of code I get a Data Race error but don&amp;#39;t know why. Can you please be so kind and give me some insights why this is the case&amp;#63;&lt;br /&gt;BTW&amp;#58; I&amp;#39;m using build 61646 from http&amp;#58;&amp;#47;&amp;#47;ppcp.codeplex.com&lt;br /&gt;&lt;br /&gt; using System.Collections.Concurrent&amp;#59;&lt;br /&gt; using System.Threading.Tasks&amp;#59;&lt;br /&gt; using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt; &lt;br /&gt; namespace MOCTestProject&lt;br /&gt; &amp;#123;&lt;br /&gt;    public class AlpacaTest&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void AddAndRemove&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            ConcurrentDictionary&amp;#60;string, MyData&amp;#62; ccd &amp;#61; new ConcurrentDictionary&amp;#60;string, MyData&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt; &lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62; ccd.TryAdd&amp;#40;&amp;#34;k1&amp;#34;, new MyData&amp;#40;&amp;#41;&amp;#41;,&lt;br /&gt; &lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    MyData data&amp;#59;&lt;br /&gt;                    if &amp;#40;ccd.TryRemove&amp;#40;&amp;#34;k1&amp;#34;, out data&amp;#41;&amp;#41;&lt;br /&gt;                    &amp;#123;&lt;br /&gt;                        data.Cleanup&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                    &amp;#125;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt; &lt;br /&gt;    public class MyData&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private string data&amp;#59;&lt;br /&gt; &lt;br /&gt;        public MyData&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            data &amp;#61; &amp;#34;value&amp;#34;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt; &lt;br /&gt;        public void Cleanup&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            data &amp;#61; null&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt; &amp;#125;&lt;br /&gt;Comments: ** Comment from web user: MatthiasFG ** &lt;p&gt;I was just wondering why there was the &amp;#34;Associated with changeset 58005&amp;#34; statement.&lt;/p&gt;&lt;p&gt;-Matthias&lt;/p&gt;</description><author>MatthiasFG</author><pubDate>Wed, 04 May 2011 21:10:09 GMT</pubDate><guid isPermaLink="false">Commented Issue: Alpaca Test reports Data Race but don't know why [8077] 20110504091009P</guid></item><item><title>Commented Issue: Alpaca Test reports Data Race but don't know why [8077]</title><link>http://chesstool.codeplex.com/workitem/8077</link><description>I wrote some Alpaca Tests and really like the tool and it helped me a lot in finding bad code.&lt;br /&gt;But with the following lines of code I get a Data Race error but don&amp;#39;t know why. Can you please be so kind and give me some insights why this is the case&amp;#63;&lt;br /&gt;BTW&amp;#58; I&amp;#39;m using build 61646 from http&amp;#58;&amp;#47;&amp;#47;ppcp.codeplex.com&lt;br /&gt;&lt;br /&gt; using System.Collections.Concurrent&amp;#59;&lt;br /&gt; using System.Threading.Tasks&amp;#59;&lt;br /&gt; using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt; &lt;br /&gt; namespace MOCTestProject&lt;br /&gt; &amp;#123;&lt;br /&gt;    public class AlpacaTest&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void AddAndRemove&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            ConcurrentDictionary&amp;#60;string, MyData&amp;#62; ccd &amp;#61; new ConcurrentDictionary&amp;#60;string, MyData&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt; &lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62; ccd.TryAdd&amp;#40;&amp;#34;k1&amp;#34;, new MyData&amp;#40;&amp;#41;&amp;#41;,&lt;br /&gt; &lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    MyData data&amp;#59;&lt;br /&gt;                    if &amp;#40;ccd.TryRemove&amp;#40;&amp;#34;k1&amp;#34;, out data&amp;#41;&amp;#41;&lt;br /&gt;                    &amp;#123;&lt;br /&gt;                        data.Cleanup&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                    &amp;#125;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt; &lt;br /&gt;    public class MyData&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private string data&amp;#59;&lt;br /&gt; &lt;br /&gt;        public MyData&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            data &amp;#61; &amp;#34;value&amp;#34;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt; &lt;br /&gt;        public void Cleanup&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            data &amp;#61; null&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt; &amp;#125;&lt;br /&gt;Comments: ** Comment from web user: mormayo ** &lt;p&gt;I only checked in the code that reproduces the issues. Nothing has been fixed by them.&lt;/p&gt;</description><author>mormayo</author><pubDate>Wed, 04 May 2011 19:02:51 GMT</pubDate><guid isPermaLink="false">Commented Issue: Alpaca Test reports Data Race but don't know why [8077] 20110504070251P</guid></item><item><title>Commented Issue: Alpaca Test reports Data Race but don't know why [8077]</title><link>http://chesstool.codeplex.com/workitem/8077</link><description>I wrote some Alpaca Tests and really like the tool and it helped me a lot in finding bad code.&lt;br /&gt;But with the following lines of code I get a Data Race error but don&amp;#39;t know why. Can you please be so kind and give me some insights why this is the case&amp;#63;&lt;br /&gt;BTW&amp;#58; I&amp;#39;m using build 61646 from http&amp;#58;&amp;#47;&amp;#47;ppcp.codeplex.com&lt;br /&gt;&lt;br /&gt; using System.Collections.Concurrent&amp;#59;&lt;br /&gt; using System.Threading.Tasks&amp;#59;&lt;br /&gt; using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt; &lt;br /&gt; namespace MOCTestProject&lt;br /&gt; &amp;#123;&lt;br /&gt;    public class AlpacaTest&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void AddAndRemove&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            ConcurrentDictionary&amp;#60;string, MyData&amp;#62; ccd &amp;#61; new ConcurrentDictionary&amp;#60;string, MyData&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt; &lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62; ccd.TryAdd&amp;#40;&amp;#34;k1&amp;#34;, new MyData&amp;#40;&amp;#41;&amp;#41;,&lt;br /&gt; &lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    MyData data&amp;#59;&lt;br /&gt;                    if &amp;#40;ccd.TryRemove&amp;#40;&amp;#34;k1&amp;#34;, out data&amp;#41;&amp;#41;&lt;br /&gt;                    &amp;#123;&lt;br /&gt;                        data.Cleanup&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;                    &amp;#125;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt; &lt;br /&gt;    public class MyData&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private string data&amp;#59;&lt;br /&gt; &lt;br /&gt;        public MyData&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            data &amp;#61; &amp;#34;value&amp;#34;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt; &lt;br /&gt;        public void Cleanup&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            data &amp;#61; null&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt; &amp;#125;&lt;br /&gt;Comments: ** Comment from web user: MatthiasFG ** &lt;p&gt;Hi Joe&amp;#33;&lt;/p&gt;&lt;p&gt;I downloaded 58009 and build Alpaca and all the other projects and run it on my sample code.&lt;br /&gt;But I still get the DataRace reports.&lt;br /&gt;Did I made something wrong&amp;#63;&lt;/p&gt;&lt;p&gt;-Matthias&lt;/p&gt;</description><author>MatthiasFG</author><pubDate>Wed, 04 May 2011 14:09:00 GMT</pubDate><guid isPermaLink="false">Commented Issue: Alpaca Test reports Data Race but don't know why [8077] 20110504020900P</guid></item><item><title>Commented Issue: Alpaca Test reports Data Race when using Lambdas [8081]</title><link>http://chesstool.codeplex.com/workitem/8081</link><description>Hi&amp;#33;&lt;br /&gt;&lt;br /&gt;running the given sample from below I get a Data Race reported for the &amp;#34;LambdaCausesDataRace&amp;#34; test and no Data Race for the &amp;#34;ForeachLoopCausesNoDataRace&amp;#34; test. Why&amp;#63;&lt;br /&gt;&lt;br /&gt;using System.Collections.Generic&amp;#59;&lt;br /&gt;using System.Linq&amp;#59;&lt;br /&gt;using System.Threading.Tasks&amp;#59;&lt;br /&gt;using Microsoft.Concurrency.TestTools.UnitTesting&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace MOCTestProject&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class AlpacaTest2&lt;br /&gt;    &amp;#123;&lt;br /&gt; &lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void ForeachLoopCausesNoDataRace&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var parameters &amp;#61; new&amp;#91;&amp;#93; &amp;#123; new object&amp;#40;&amp;#41;, &amp;#34;test&amp;#34;, 5 &amp;#125;&amp;#59;&lt;br /&gt;            string result1 &amp;#61; null&amp;#59;&lt;br /&gt;            string result2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result1 &amp;#61; ParametersToTypeListUsingForeachLoop&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;,&lt;br /&gt;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result2 &amp;#61; ParametersToTypeListUsingForeachLoop&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private static string ParametersToTypeListUsingForeachLoop&amp;#40;object&amp;#91;&amp;#93; parameters&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            List&amp;#60;string&amp;#62; result &amp;#61; new List&amp;#60;string&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            foreach &amp;#40;var p in parameters&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                result.Add&amp;#40;p &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; p.GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;            return string.Join&amp;#40;&amp;#34;, &amp;#34;, result&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        &lt;br /&gt;        &amp;#91;DataRaceTestMethod&amp;#93;&lt;br /&gt;        public void LambdaCausesDataRace&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            var parameters &amp;#61; new&amp;#91;&amp;#93; &amp;#123; new object&amp;#40;&amp;#41;, &amp;#34;test&amp;#34;, 5 &amp;#125;&amp;#59;&lt;br /&gt;            string result1 &amp;#61; null&amp;#59;&lt;br /&gt;            string result2 &amp;#61; null&amp;#59;&lt;br /&gt;&lt;br /&gt;            Parallel.Invoke&amp;#40;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result1 &amp;#61; ParametersToTypeListUsingLambda&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;,&lt;br /&gt;&lt;br /&gt;                &amp;#40;&amp;#41; &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    result2 &amp;#61; ParametersToTypeListUsingLambda&amp;#40;parameters&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&lt;br /&gt;                &amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result1&amp;#41;&amp;#59;&lt;br /&gt;            Assert.AreEqual&amp;#40;&amp;#34;Object, String, Int32&amp;#34;, result2&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private static string ParametersToTypeListUsingLambda&amp;#40;object&amp;#91;&amp;#93; parameters&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            return string.Join&amp;#40;&amp;#34;, &amp;#34;, parameters.Select&amp;#40;p &amp;#61;&amp;#62; p &amp;#61;&amp;#61; null &amp;#63; null &amp;#58; p.GetType&amp;#40;&amp;#41;.Name&amp;#41;.ToArray&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&lt;br /&gt;-Matthias&lt;br /&gt;Comments: ** Comment from web user: MatthiasFG ** &lt;p&gt;Hi Joe&amp;#33;&lt;/p&gt;&lt;p&gt;I downloaded 58009 and build Alpaca and all the other projects and run it on my sample code.&lt;br /&gt;But I still get the DataRace reports.&lt;br /&gt;Did I made something wrong&amp;#63;&lt;/p&gt;&lt;p&gt;-Matthias&lt;/p&gt;</description><author>MatthiasFG</author><pubDate>Wed, 04 May 2011 14:07:57 GMT</pubDate><guid isPermaLink="false">Commented Issue: Alpaca Test reports Data Race when using Lambdas [8081] 20110504020757P</guid></item></channel></rss>