03-13-2005:

     Add upgrade/downgrade to ReadWriteLock implementations

07-15-2003:

     Made lots of changes, consider ThreadLocals

07-01-2002:
 
     Expand Handle & CountedPtr to be assignable
     Removed io interruption from the monitor; going with the you don't pay for 
     what you don't use philosiphy & will demonstrate how the same behavior can
     be achieved by extendind Thread & using ThreadFactories


06-19-2002:

     Update the Thread::current() method to return a more useful type. Want to
     simplify keeping a reference to threads outside the scope of the function
     requesting one.

06-01-2002:

     The only thing that I' planning on finding a better solution for is 
     that passing of Runnable objects. I have some strict rules about ownership,
     right now - but even that seems a little too awkward. I'd like to make
     this automatic, perhaps using a kind of reference counting. I just haven't
     had time to fully evalute things yet.

05-27-2002:

     Possibly revise ThreadOps to act as an identifier for a native 
     thread.

05-26-2002:
    
     Cleanup dependancies

05-14-2002:
     
     Consider making Singleton return references instead of pointers.     

05-13-2002:

     Re-evaluate the policy templates. Update to make more usable,
     remove the template method work around if possible.

     Consider making ThreadLocals clear()able - removing all mapped 
     values to simplify the task of those using the PoolExecutor.
     (keeping stale values from interfering with tasks)

     Consider adding Futures as described by Doug Lea.

     Possibly make the Observable class have some paramatized type that
     controls weather the listeners should be copied and notified, or 
     if the lock should just be held throughout notification - weather 
     this is helpful or not depends on how long the listeners usually take. 

     Executors could be a good candiate for policies.

04-26-2002:
 
     Explore some of the updates to Doug Lea's concurrent 
     package.

     Find someone familar with mingw32/cygwin to help adjust
     whatever details are needed to compile correctly there,
     I've gotten the autoconf scripts setup but there are a 
     few things that still need to be worked out.

04-24-2002:

     - Possible Timer enhancements
     - Add a small allocator for tiny obejcts, like TimerEvents
     - Make Timer use const TimerEvent pointers instead of id's.
     - Replace the used key set added to the timer with a user
       supplied id generator.

02-20-2002:

       Possibly add a cleanup thread that joins daemon threads sooner.
       
02-07-2002:
		
       Add a test suite, should have done this a long time ago - 
       but have been busy :) At least for some common problem
       situations.

*DONE* 

     Consider using an InstanceLock for the IntrusivePtr extended by Thread
     to aliviate contention.

*DONE* 

       I need to start using a real make for windows that will work
       with ms compilers. DevStudio is next to useless.

*DONE* 

       Had to make the Event used to block threads have a non-recursvie lock
       due to that type of lock not being 100% reliable on some POSIX system.
       Should update the WIN32 implementation to also no rely on the recsiveness
       of the CRITICAL_SECTION it uses to ease maintenece.


*DONE* 

       Find some better Win32 build method for Visual Studio. 
       - Suggestions very welcome for this
    
       Check cygwin & mingw32 builds

*DONE* 

       Fix the 'distcheck' rule
       Update 'dist' rule to remove junk from visual studio builds.
  
*DONE* 12-31-2000:

	Go outside sometime :)

*DONE* 
	perhaps create some VC templates and autoconf tempalates for new
	projects using this package
 		

*DONE* 6-20-2000:
	
	Project configuration:
		
	create a include/ directory off project root and move all the 
	headers that clients should use there - keep the system dependant
	headers & all sources in the src/ directory
 		
