This commit was manufactured by cvs2svn to create branch
'thread_rewrite'.

svn path=; revision=30953
Added lightweight_mutex_win32.hpp

svn path=; revision=30977
Moved lightweight_mutex_win32.hpp and mutex_win32.hpp into boost source tree

svn path=; revision=30978
Added licence text

svn path=; revision=30979
Use lightweight_mutex for mutex impl. Added basic condition implementation.

svn path=; revision=30981
Remove references to WINTHREADS from the generic code, as windows threads handled in separate header

svn path=; revision=30982
Added new implementation of timed_mutex for win32

svn path=; revision=30984
Added new implementation of timed_mutex for win32

svn path=; revision=30985
Trimmed included headers

svn path=; revision=30986
New read_write_mutex implementation for win32. No try/timed varieties, and no support for read/write priority policies.

svn path=; revision=30994
Set semaphore handle back to NULL on destruction

svn path=; revision=31011
Added a looping test to check for cross-thread sync problems

svn path=; revision=31016
Added test to verify that threads block on a mutex, and only one waiting thread is released when the mutex is unlocked.

svn path=; revision=31040
Extended stress test: 100 threads, loop 100 times on same thread.

svn path=; revision=31045
Put a mutex around the increment in init_once_value, to ensure that if two threads call init_once_value, the increment is done
correctly.

svn path=; revision=31046
Wake up threads using QueueUserAPC rather than triggering the semaphore.

svn path=; revision=31047
reverted QueueUserAPC changes

svn path=; revision=31052
Added brute force test for multiple readers

svn path=; revision=31061
A locked reader blocks a waiting writer

svn path=; revision=31062
Removed duplication between reader_thread and writer_thread into a template locking_thread

svn path=; revision=31063