<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>nohardlockrwlocker Source Code Rss Feed</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/list/changesets</link><description>nohardlockrwlocker Source Code Rss Description</description><item><title>Source code checked in, #19058</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/19058</link><description>Upgrade&amp;#58; New Version of LabDefaultTemplate.xaml. To upgrade your build definitions, please visit the following link&amp;#58; http&amp;#58;&amp;#47;&amp;#47;go.microsoft.com&amp;#47;fwlink&amp;#47;&amp;#63;LinkId&amp;#61;254563</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 20:32:50 GMT</pubDate><guid isPermaLink="false">Source code checked in, #19058 20121001083250P</guid></item><item><title>Source code checked in, #19057</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/19057</link><description>Checked in by server upgrade</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 20:31:07 GMT</pubDate><guid isPermaLink="false">Source code checked in, #19057 20121001083107P</guid></item><item><title>Source code checked in, #6738</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/6738</link><description>Broken.  Sort of runs and better than what was there before.  Still not fully atomic.  Uses the idea of each thread having their own static fields.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Here I have the static fields as a Dictionary&amp;#60;int, int&amp;#62; where the key is the GetHashCode&amp;#40;&amp;#41; of the ReadWriteLocker object, and the value is the number of times that thread has been incremented for read or write locking.&amp;#13;&amp;#10;&amp;#13;&amp;#10;This is an alternative to making a thread-safe dictionary, which failed misserably before.  At least this runs &amp;#40;but it locks up and the test fails&amp;#41;.&amp;#13;&amp;#10;&amp;#13;&amp;#10;In progress...&amp;#13;&amp;#10;&amp;#13;&amp;#10;-TamusJRoyce</description><author>TamusJRoyce</author><pubDate>Mon, 02 May 2011 04:45:31 GMT</pubDate><guid isPermaLink="false">Source code checked in, #6738 20110502044531A</guid></item><item><title>Source code checked in, #5454</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/5454</link><description>Fixed it so Thread.MemoryBarrier&amp;#40;&amp;#41; is being used correctly for reading variables.  Unsure if it really works.  Don&amp;#39;t have a multi-core&amp;#47;processor machine to test it on.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Otherwise, changing to Thread.VolatileRead&amp;#40;&amp;#41;&amp;#47;VolatileWrite&amp;#40;&amp;#41; will be needed.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Either way, speed is a huge issue now.  May have to find a fundementally faster way of reference counting.&amp;#13;&amp;#10;&amp;#13;&amp;#10;-TamusJRoyce</description><author>TamusJRoyce</author><pubDate>Sun, 23 Jan 2011 09:09:34 GMT</pubDate><guid isPermaLink="false">Source code checked in, #5454 20110123090934A</guid></item><item><title>Source code checked in, #4969</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/4969</link><description>Broken, but enough clues as to why it isn&amp;#39;t working so i can finish it up at a different computer.&amp;#13;&amp;#10;&amp;#13;&amp;#10;This is using SharpDevelop.  Don&amp;#39;t bother downloading this checkin.</description><author>TamusJRoyce</author><pubDate>Wed, 15 Dec 2010 20:44:51 GMT</pubDate><guid isPermaLink="false">Source code checked in, #4969 20101215084451P</guid></item><item><title>Source code checked in, #4968</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/4968</link><description>Broken, but enough clues as to why it isn&amp;#39;t working so i can finish it up at a different computer.&amp;#13;&amp;#10;&amp;#13;&amp;#10;This is using SharpDevelop.  Don&amp;#39;t bother downloading this checkin.</description><author>TamusJRoyce</author><pubDate>Wed, 15 Dec 2010 20:44:51 GMT</pubDate><guid isPermaLink="false">Source code checked in, #4968 20101215084451P</guid></item><item><title>Source code checked in, #4953</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/4953</link><description>Was missing NoDeadLockingRWLocker.sln, making it impossible to open w&amp;#47; visual studio.  Still has Windows 7&amp;#47;i7 issue.  I will try to improve on next build &amp;#40;be nice to own the hardware&amp;#41;.</description><author>TamusJRoyce</author><pubDate>Wed, 15 Dec 2010 04:48:16 GMT</pubDate><guid isPermaLink="false">Source code checked in, #4953 20101215044816A</guid></item><item><title>Source code checked in, #4885</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/4885</link><description>Bug seen on Windows 7 using a Intel i7 processor and selecting Yes to prevent deadlocks.  I currently only own a single processor AMD 2600&amp;#43; on Windows XP.  So if anyone has the ability to test this with a multi-processor machine or hyperthreading and Windows Vista or 7, please comment in discussion about your results.  I hope I&amp;#39;ve fixed the issue.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Renamed HardLock, such as Behavior.NoHardLock, to DeadLock, or Behavior.NoDeadLock.&amp;#13;&amp;#10;I consider &amp;#34;hard locks&amp;#34; as infinite loops where 100&amp;#37; of the processor is being used and no progress is being made. I consider &amp;#34;dead locks&amp;#34; as the classic ABBA locking where all threads are sleeping and waiting on each other--using 0&amp;#37; of the processor and making no progress either.</description><author>TamusJRoyce</author><pubDate>Sat, 11 Dec 2010 18:56:51 GMT</pubDate><guid isPermaLink="false">Source code checked in, #4885 20101211065651P</guid></item><item><title>Source code checked in, #4884</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/4884</link><description>ignore this commit.</description><author>TamusJRoyce</author><pubDate>Sat, 11 Dec 2010 18:39:39 GMT</pubDate><guid isPermaLink="false">Source code checked in, #4884 20101211063939P</guid></item><item><title>Source code checked in, #4847</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/4847</link><description>New IdBasedReferenceCounter implemented.  This means a lot of thread-safety has been removed from the locker.  This results in less overhead and more parallelism with deadlock prevention&amp;#33;&amp;#13;&amp;#10;&amp;#13;&amp;#10;Other things have been tuned up.  Twice as fast as it use to be.  But without deadlock prevention it is roughly 2-3x slower than ReaderWriterLockSlim.  And with prevention, it is 5-6x slower.&amp;#13;&amp;#10;&amp;#13;&amp;#10;I hope to improve it to be close to equal that of ReaderWriterLockSlim and at most 3x slower for prevention.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Tri-license also added to project.</description><author>TamusJRoyce</author><pubDate>Mon, 06 Dec 2010 21:08:42 GMT</pubDate><guid isPermaLink="false">Source code checked in, #4847 20101206090842P</guid></item><item><title>Source code checked in, #4142</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/4142</link><description>Removed the Wait&amp;#47;PulseAll in favor for ReaderWriterLockSlim&amp;#39;s Sleep&amp;#40;1&amp;#41;.  It is now roughly 3 times slower than it, but many times quicker than before.  Working on non-blocking thread tracking.&amp;#13;&amp;#10;&amp;#13;&amp;#10;With the non-blocking thread tracking, I will be storing keys using radix buckets &amp;#40;keys are integers--ManagedThreadId&amp;#41; for parallelism, and sorted linked list within those buckets.  This should be more memory efficient than using a dictionary&amp;#47;hash table, with identical speed.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Speed will be guaranteed by increasing the number of buckets if a certain threshold has been surpassed &amp;#40;similar to how a hash table expands when conflicts pass a threshold&amp;#41;.</description><author>TamusJRoyce</author><pubDate>Sat, 06 Nov 2010 19:09:05 GMT</pubDate><guid isPermaLink="false">Source code checked in, #4142 20101106070905P</guid></item><item><title>Source code checked in, #3886</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/3886</link><description>In progress of getting performance better and demo working.  It now does distribute the workload.  Then pressing the button to start the race shows progress more evenly.  Also, demo using 6 threads per horse rather than 2.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Spinlocks now do waiting if they spin too much.  This pushes readwritelockers performance past the regular ReaderWriterLockSlim, though it is still about 2-8 times slower than ReaderWriterLockSlim.  But that&amp;#39;s involving the GUI, so it by far is not accurate.&amp;#13;&amp;#10;&amp;#13;&amp;#10;As stable as previous checking.</description><author>TamusJRoyce</author><pubDate>Fri, 29 Oct 2010 13:24:13 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3886 20101029012413P</guid></item><item><title>Source code checked in, #3794</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/3794</link><description>Reverted to before policy-per-lock is available.  Comments are down too.  Spinlocks implemented with read&amp;#47;upgrade&amp;#47;write spinlocks.  Fixed other bugs.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Almost production ready &amp;#40;besides performance&amp;#41;.  The biggest hold back from allowing this to perform really good &amp;#40;performs ok, but still slow in my opinion&amp;#41; is not having non-blocking hashtables&amp;#47;dictionaries.  That is the next thing I plan on getting to work.  Then policy based locking with better comments.</description><author>TamusJRoyce</author><pubDate>Tue, 26 Oct 2010 03:07:02 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3794 20101026030702A</guid></item><item><title>Source code checked in, #3793</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/3793</link><description>Rolled back to before policy-per-lock and such.  Commenting reduced.  Spinlocks are implemented.  ReadSpin, UpgradeSpin, and WriteSpin.  Much more stable.  Fixed other errors.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Plan is to next re-implement policy based locking, and implement non-blocking hash tables which is the major fallback to this locker &amp;#40;though the idea still holds merit&amp;#41;.  I&amp;#39;d say this is almost production ready for detecting deadlocks &amp;#40;minus performance&amp;#41;.</description><author>TamusJRoyce</author><pubDate>Tue, 26 Oct 2010 02:25:57 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3793 20101026022557A</guid></item><item><title>Source code checked in, #3393</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/3393</link><description>This check-in runs slower than previous check-ins.  In progress of implementing Policy Based Locking.  It is easier to understand while having more comments.&amp;#13;&amp;#10;&amp;#13;&amp;#10;Not a recommended download, but you are welcome to check it out.</description><author>TamusJRoyce</author><pubDate>Tue, 12 Oct 2010 09:15:30 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3393 20101012091530A</guid></item><item><title>Source code checked in, #3188</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/3188</link><description>Updating executables in debug directory.</description><author>TamusJRoyce</author><pubDate>Thu, 07 Oct 2010 06:58:19 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3188 20101007065819A</guid></item><item><title>Source code checked in, #3187</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/3187</link><description>PerformanceGraph project added.  It&amp;#39;s really a progress bar test between ReaderWriterLock, ReaderWriterLockSlim, and ReadWriteLocker.&amp;#13;&amp;#10;Spinlocks implemented&amp;#33;  There are no longer any SyncLocks&amp;#47;locks, except within the actual lock where waiting occurs.&amp;#13;&amp;#10;Fixed an instance where SuperThread was being used when number of threads entered equal the number of threads locked, when both equal zero &amp;#40;so no threads are locked, and thus the SuperThread shouldn&amp;#39;t be used&amp;#41;.&amp;#13;&amp;#10;</description><author>TamusJRoyce</author><pubDate>Thu, 07 Oct 2010 06:52:56 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3187 20101007065256A</guid></item><item><title>Source code checked in, #3035</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/3035</link><description>Performance improved.  Below, by removing local locking, I mean I removed local deadlock prevention, which is redundant now that the regular read-write locker functionality works 100&amp;#37;.  Before, nesting a read lock inside a write lock would deadlock, requiring a local super-thread work-around to not deadlock.&amp;#13;&amp;#10;&amp;#13;&amp;#10;This check in updates the included executable.</description><author>TamusJRoyce</author><pubDate>Fri, 01 Oct 2010 14:50:10 GMT</pubDate><guid isPermaLink="false">Source code checked in, #3035 20101001025010P</guid></item><item><title>Source code checked in, #2992</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/2992</link><description>Found that upgrading from write lock to read lock on a single thread was using the SuperThread.  Changed locking condition so read locks are upgradable to write locks and write locks to read locks without using the super-thread.&amp;#13;&amp;#10;Also, removed unneeded local locking, as the condition for recursive local locking is working.  It helped prevent deadlocking when the read-write locker logic was coded with the issue above.&amp;#13;&amp;#10;Unit test updated to include simple test detecting this.&amp;#13;&amp;#10;&amp;#13;&amp;#10;-TamusJRoyce&amp;#13;&amp;#10;</description><author>TamusJRoyce</author><pubDate>Thu, 30 Sep 2010 04:14:20 GMT</pubDate><guid isPermaLink="false">Source code checked in, #2992 20100930041420A</guid></item><item><title>Source code checked in, #2716</title><link>http://nohardlockrwlocker.codeplex.com/SourceControl/changeset/changes/2716</link><description>ThreadSafeList Collection now implements ISimpleReadWriteLocker, exposing some of the ReadWriteLocker&amp;#39;s functionality.&amp;#13;&amp;#10;&amp;#13;&amp;#10;-TamusJRoyce&amp;#13;&amp;#10;</description><author>TamusJRoyce</author><pubDate>Sat, 25 Sep 2010 07:47:24 GMT</pubDate><guid isPermaLink="false">Source code checked in, #2716 20100925074724A</guid></item></channel></rss>