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

[SVN r30953]
Added lightweight_mutex_win32.hpp


[SVN r30977]
Moved lightweight_mutex_win32.hpp and mutex_win32.hpp into boost source tree


[SVN r30978]
Added licence text


[SVN r30979]
Use lightweight_mutex for mutex impl. Added basic condition implementation.


[SVN r30981]
Remove references to WINTHREADS from the generic code, as windows threads handled in separate header


[SVN r30982]
Added new implementation of timed_mutex for win32


[SVN r30984]
Added new implementation of timed_mutex for win32


[SVN r30985]
Trimmed included headers


[SVN r30986]
New read_write_mutex implementation for win32. No try/timed varieties, and no support for read/write priority policies.


[SVN r30994]
Set semaphore handle back to NULL on destruction


[SVN r31011]
Added a looping test to check for cross-thread sync problems


[SVN r31016]
Added test to verify that threads block on a mutex, and only one waiting thread is released when the mutex is unlocked.


[SVN r31040]
Extended stress test: 100 threads, loop 100 times on same thread.


[SVN r31045]
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 r31046]
Wake up threads using QueueUserAPC rather than triggering the semaphore.


[SVN r31047]
reverted QueueUserAPC changes


[SVN r31052]
Added brute force test for multiple readers


[SVN r31061]
A locked reader blocks a waiting writer


[SVN r31062]
Removed duplication between reader_thread and writer_thread into a template locking_thread


[SVN r31063]