2011-11-04  Jeremie Laval  <jeremie.laval@gmail.com>

	Add RwWrite flag to status check when already owning upgradeable
	lock. Fix #802.

2011-11-01  Jeremie Laval  <jeremie.laval@gmail.com>

	Set success boolean in all cases and avoid state masking. Fix #124

2011-04-05  Jérémie Laval  <jeremie.laval@gmail.com>

	Protect entering ReaderWriterLockSlim upgradable mode against
	async exceptions.

2010-12-01  Jérémie Laval  <jeremie.laval@gmail.com>

	[ReaderWriterLockSlim] Fix for #656353. Add corresponding unit
	test.

	When in SupportsRecursion mode, a test was not including proper
	state check for short-circuiting.

2010-11-23  Jérémie Laval  <jeremie.laval@gmail.com>

	Fix ReaderWriterLockSlim Exit methods in SupportsRecursion mode
	and add corresponding unit tests

2010-11-12  Jérémie Laval  <jeremie.laval@gmail.com>

	Another fix related to the rebase

2010-11-12  Jérémie Laval  <jeremie.laval@gmail.com>

	Fix compile error introduced by rebasing

2010-10-22  Jérémie Laval  <jeremie.laval@gmail.com>

	Protect ExitUpgradeable part of ReaderWriterLockSlim against
	asynchronous exception.

	This ensure that the lock state remains consistent even when it's
	interrupted by an async exception (such as ThreadAbortException).

2010-10-22  Jérémie Laval  <jeremie.laval@gmail.com>

	Protect Enter/Exit write part of ReaderWriterLockSlim against
	asynchronous exception.

	This ensure that the lock state remains consistent even when it's
	interrupted by an async exception (such as ThreadAbortException).

2010-10-22  Jérémie Laval  <jeremie.laval@gmail.com>

	Protect Enter/Exit read part of ReaderWriterLockSlim against
	asynchronous exception.

	This ensure that the lock state remains consistent even when it's
	interrupted by an async exception (such as ThreadAbortException).

2010-11-10  Jérémie Laval  <jeremie.laval@gmail.com>

	Final performance improvement on ReaderWriterLockSlim

2010-11-09  Jérémie Laval  <jeremie.laval@gmail.com>

	Remove CurrentLockState in ReaderWriterLockSlim and reuse
	ThreadLockState instance more often.

2010-11-08  Jérémie Laval  <jeremie.laval@gmail.com>

	Small condition fix in ReaderWriterLockSlim, avoid an extra loop
	pass.

2010-11-04  Jérémie Laval  <jeremie.laval@gmail.com>

	ReaderWriterLockSlim performance improvements

2010-11-03  Jérémie Laval  <jeremie.laval@gmail.com>

	Add tiny bit of doc on ReaderWriterLockSlim.

2010-09-29  Jérémie Laval  <jeremie.laval@gmail.com>

	[ReaderWriterLockSlim] Fix state corruption and race in a special
	interleaving.

	Fix possible state corruption in the case where Upgradeable wasn't
	reactivating its read bit after a downgrade and set events
	accordingly. Fix possible race where a write process wannabe could
	step in the middle of Upgradeable actually upgrading to write
	mode.

2010-09-28  Jérémie Laval  <jeremie.laval@gmail.com>

	Turn Is*LockHeld properties into thread-specific values in
	ReaderWriterLockSlim. Add corresponding unit tests.

2010-09-22  Jérémie Laval  <jeremie.laval@gmail.com>

	Add tidbits of documentation to ReaderWriterLockSlim.

2010-09-22  Jérémie Laval  <jeremie.laval@gmail.com>

	Also set readerDoneEvent when exiting an upgradeable lock and
	reader condition is correct.

	It could cause a deadlock when a writer tested the rwlock value
	before RwRead was removed and another Upgradeable operation
	happened at the same time.

2010-09-01  Jérémie Laval  <jeremie.laval@gmail.com>

	Allow recursive Write + n * Read lock pattern for
	ReaderWriterLockSlim and add corresponding unit test

2010-09-01  Jérémie Laval  <jeremie.laval@gmail.com>

	Generalize ThreadLockState to include recursive count informations
	and update them accordingly in the different Enter/Exit methods

2010-09-01  Jérémie Laval  <jeremie.laval@gmail.com>

	Change the key of the inner dictionary to an int id instead of the
	instance itself

	It prevents object references to the rwlslim to be kept and thus
	not GC'ed

2010-09-01  Jérémie Laval  <jeremie.laval@gmail.com>

	Split ReaderWriterLockSlim helper classes into their own files

2010-08-31  Jérémie Laval  <jeremie.laval@gmail.com>

	Fix non 4.0 build of ReaderWriterLockSlim.

	It needs to be cleaned up though.

2010-08-31  Jérémie Laval  <jeremie.laval@gmail.com>

	Enable basic recursion support in ReaderWriterLockSlim. Works when
	reacquiring lock of the same type.

2010-08-31  Jérémie Laval  <jeremie.laval@gmail.com>

	Use ManualResetEventSlim instances to wait for lock changes
	instead of hardcoded Thread.Sleep calls in ReaderWriterLockSlim.

2010-08-31  Jérémie Laval  <jeremie.laval@gmail.com>

	Remove unused bit position constants in ReaderWriterLockSlim

2010-08-31  Jérémie Laval  <jeremie.laval@gmail.com>

	Finish reimplementation of ReaderWriterLockSlim so that it pass
	unit tests.

2010-08-27  Jérémie Laval  <jeremie.laval@gmail.com>

	Refactor ThreadLockState acquisition into a real per-thread,
	per-rwlock-instance value

2010-08-26  Jérémie Laval  <jeremie.laval@gmail.com>

	Rework ReaderWriterLockSlim to use simpler Interlocked arithmetic.

2009-06-15  Atsushi Enomoto  <atsushi@ximian.com>

	* ReaderWriterLockSlim.cs : fix deadlock when entered
	  read lock -> entered writer lock -> exited writer lock
	  -> exited read lock and then entered reader lock.
	  Fixed bug #512485, patch by Kazuki Oikawa.

2009-06-10  Marek Safar  <marek.safar@gmail.com>

	* LockRecursionException.cs: Updated to 4.0 changes.

2009-01-18  Marek Safar <marek.safar@gmail.com>

	* ReaderWriterLockSlim.cs: Implemented all properties.

2008-12-02  Marek Safar <marek.safar@gmail.com>

	* ReaderWriterLockSlim.cs: Initial merge.

2008-09-05  Marek Safar <marek.safar@gmail.com>

	* ChangeLog: Added

