**** Merged from MCS ****
[mono-project.git] / mcs / class / corlib / System.Threading / ChangeLog
blob4095c06709983305085d5d60a67d002d2970a177
1 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3         * Timer.cs: don't invoke the callback twice when the timer changes.
4         Fixes bug #66116.
6 2004-09-08  Marek Safar  <marek.safar@seznam.cz>
8         * Interlocked.cs: Class is static in NET_2_0.
10 2004-09-04  Sebastien Pouliot  <sebastien@ximian.com>
12         * Thread.cs: Changed an imperative security demand to declarative
13         (unsupported) so it doesn't (for now) call the security runtime.
15 2004-08-20  Sebastien Pouliot  <sebastien@ximian.com>
17         * Thread.cs: Added Fx 2.0 properties/methods/attributes.
19 2004-08-12  Sebastien Pouliot  <sebastien@ximian.com>
21         * CompressedStackSwitcher.cs: Added missing [ComVisible] and 
22         [ReliabilityContract] attributes.
23         * ExecutionContext.cs: Added missing [ComVisible] and 
24         [Serializable] attributes.
25         * HostExecutionContext.cs: Added missing [ComVisible] attribute.
26         * HostExecutionContextManager.cs: Added missing [ComVisible] and 
27         [ReliabilityContract] attributes.
28         * HostExecutionContextSwitcher.cs: Added missing Equals and 
29         GetHashCode methods and [ComVisible] and [ReliabilityContract] attrs.
30         * ParameterizedThreadStart.cs: New delegate in NET_2_0.
31         * SendOrPostCallback.cs: Added missing [ComVisible] attribute.
32         * SynchronizationContext.cs: Added new (2.0 beta1) methods Copy and
33         WaitHelper. Added missing [ComVisible] and [ReliabilityContract] attrs.
34         * SynchronizationContextSwitcher.cs: Added missing [ComVisible] and 
35         [ReliabilityContract] attributes.
37 2004-08-08  Sebastien Pouliot  <sebastien@ximian.com>
39         * HostExecutionContext.cs: Fx 2.0 stub required for AppDomain.
40         * HostExecutionContextManager.cs: Fx 2.0 stub required for AppDomain.
41         * HostExecutionContextSwitcher.cs: Fx 2.0 stub required for AppDomain.
43 2004-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
45         * Timer.cs: don't invoke the callback if the period changes before the
46         due time. Fixes bug #62421.
48 2004-07-27  Lluis Sanchez Gual  <lluis@novell.com>
50         * ExecutionContext.cs, ExecutionContextSwitcher.cs, 
51           SynchronizationContext.cs, SynchronizationContextSwitcher.cs: Added
52           2.0 stubs.
54 2004-07-15  Dick Porter  <dick@ximian.com>
56         * Thread.cs: Hold a lock in GetNamedDataSlot.  Fixes bug 61582,
57         based on patch by Sébastien Robitaille
58         (sebastien.robitaille@croesus.com).  Also fix instances of
59         lock(typeof(Thread)) to lock a private object instead.
61 2004-07-14  Sebastien Pouliot  <sebastien@ximian.com>
63         * AsyncFlowControl.cs: New structure in Fx 2.0 required in 
64         System.Security namespace.
65         * CompressedStackSwitcher.cs: New structure in Fx 2.0 required in 
66         System.Security namespace.
67         * ContextCallback.cs: New delegate in Fx 2.0 required in 
68         System.Security namespace.
69         * CompressedStack.cs: Updated API for NET_2_0 profile.
71 2004-07-10  Lluis Sanchez Gual  <lluis@ximian.com>
73         * SendOrPostCallback.cs: New delegate.
75 2004-06-24  Dick Porter  <dick@ximian.com>
77         * Mutex.cs: Implement the createdNew parameter
79 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
81         * Thread.cs: changed return type of VolatileRead to UIntPtr
82         * ThreadPool.cs: set return type of SetMinThreads to bool
84 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
86         * Thread.cs: Added new fields to keep sync with MonoThread.
87           Removed state changes in Sleep and Join. The state change is now done
88           in the icall. For accessing to internal fields lock with synch_lock
89           instead of this, which can be a source of deadlocks.
91 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
93         * Timer.cs: Don't abort the thread if Dispose() is called from the runner
94           thread.
96 2004-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
98         * Thread.cs:
99         (CurrentPrincipal): lock on CurrentThread, not typeof (Thread) and set
100         the thread IPrincipal if we get it from the AppDomain.
102 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
104         * CompressedStack.cs: Added finalizer to match public API of
105         MS.NET
107 2004-05-19  Lluis Sanchez Gual <lluis@ximian.com>
109         * Thread.cs: Some fixes in Abort. Implemented Suspend and Resume.
110           Added internal interruption_requested field.
112 2004-05-13  Sebastien Pouliot  <sebastien@ximian.com>
114         * CompressedStack.cs: Added an internal constructor so a default one
115         doesn't appear with corcompare.
116         * Thread.cs: Added missing MemoryBarrier (only for 1.1) and SpinWait to please
117         corcompare. Both throw a NotImplementedException.
118         * ThreadPool.cs: Added missing UnsafeRegisterWaitForSingleObject methods (4
119         overloads) to please corcompare. All throw a NotImplementedException.
121 2004-05-12  Zoltan Varga  <vargaz@freemail.hu>
123         * CompressedStack.cs: New file.
125 2004-04-15  Lluis Sanchez Gual <lluis@ximian.com>
127         * ThreadPool.cs: Added GetMinThreads and SetMinThreads.
128         * Timer.cs: In Change, return false if the timer has been disposed.
129         In Dispose, notify the WaitHandle.
131 2004-04-11  Lluis Sanchez Gual <lluis@ximian.com>
133         * ReaderWriterLock.cs: More fixes: never wait where acquiring a reader lock
134           if the thread already has the lock. Added readyWaitingReaders variable to
135           keep track of threads ready to get the reader lock.
137 2004-04-11  Lluis Sanchez Gual <lluis@ximian.com>
139         * LockQueue.cs: Moved lockCount change inside the rwlock lock. Removed
140           lock(this) when entering the rwlock to avoid a deadlock.
141         * ReaderWriterLock.cs: In AcquireWriterLock, queue the thread if the queue
142           is not empty (even if state==0).
144 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
146         * Timer.cs: Call the callback immediately if dueTime is 0. Fixes
147         #56728.
149 2004-04-08  Jackson Harper  <jackson@ximian.com>
151         * ReaderWriterLock.cs: Fix tyop
152         
153 2004-04-08  Lluis Sanchez Gual <lluis@ximian.com>
155         * ReaderWriterLock.cs: Changed some methods to private.
156         * WaitHandle.cs: In Wait methods, release the synchronization context when 
157           exitContext is true.
159 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
161         * Timer.cs: call Abort on the Runner instance too.
163 2004-04-07  Jackson Harper  <jackson@ximian.com>
165         * Thread.cs: Use new culture info method for constructing the
166         current culture.
167         
168 2004-04-07  Lluis Sanchez Gual <lluis@ximian.com>
170         * ReaderWriterLock.cs: When a thread holds a writer lock, a call to
171           AcquireReaderLock works like a call to AcquireWriterLock.
173 2004-04-06  Lluis Sanchez Gual <lluis@ximian.com>
175         * Monitor.cs: In Wait(), release the synchronization context when 
176           exitContext is true.
178 2004-04-06  Lluis Sanchez Gual <lluis@ximian.com>
180         * LockCookie.cs: Keep in this class the count of reader or writer locks
181           for a thread, not only whether it has locks or not.
182         * LockQueue.cs: Added property for checking if a thread is waiting in
183           the queue. Wait now returns a boolean that set to false on timeout 
184           expiration.
185         * ReaderWriterLock.cs: Started fixing bugs but I had to rewrite a lot of it.
186           The main change is that now it keeps a reader lock count for each
187           thread. This is needed since methods like ReleaseLock or 
188           UpgradeToWriterLock need to return a per-thread status in LockCookie.
189           Also added support for recursive writer-lock requests.
191 2004-03-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
193         * ThreadAbortException.cs: use same HResult as MS.
194         * Timer.cs: abort the running thread when disposing the Timer. This
195         fixes NullRefs when finishing xsp.
197 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
199         * NativeOverlapped.cs: added 2 new internal fields.
200         * Overlapped.cs: implemented, but it's not used.
202         * ThreadPool.cs: implemented BindHandle.
204 2004-03-08  Zoltan Varga  <vargaz@freemail.hu>
206         * Timer.cs (Dispose): Applied patch from Jaroslaw Kowalski 
207         (jaak@zd.com.pl). Fix finalization problems during appdomain unload.
209 2004-02-23  Jackson Harper <jackson@ximian.com>
211         * LockCookie.cs: Add some fields for restoring locks.
212         * ReaderWriterLock.cs: Implement
213         * LockQueue.cs: New File - used for queueing thread locks in
214         ReaderWriterLock.
215         
216 2004-02-19  Jackson Harper <jackson@ximian.com>
218         * Monitor.cs: Fix spelleng.
219         
220 2004-02-09  Zoltan Varga  <vargaz@freemail.hu>
222         * Thread.cs: Add fields added to unmanaged MonoThread here as well.
223         Fixes random errors caused by memory corruption.
225 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
227         * Thread.cs: Store the thread name in unmanaged memory, since the
228         thread object is shared between appdomains.
230 2004-02-05  Sebastien Pouliot  <sebastien@ximian.com>
232         * Thread.cs: Implemented CurrentPrincipal.
234 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
236         * Thread.cs: delayed thread creation until Start is called. If we
237         don't do that and Start() is not called, the thread is leaked. First
238         step towards fixing bug #53078. 
240 2003-12-02  Dick Porter  <dick@ximian.com>
242         * Thread.cs: Throw InvalidOperationException if Thread.Name is
243         already set.
245 2003-12-01  Dick Porter  <dick@ximian.com>
247         * Thread.cs: Implement CurrentCulture and CurrentUICulture
249 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
251         * Thread.cs: Add new VolatileRead/VolatileWrite methods from 1.1
253 2003-10-23  Lluis Sanchez Gual  <lluis@ximian.com>
255         * Thread.cs: Added ResetDataStoreStatus and RestoreDataStoreStatus
256           methods. They are used in CrossAppDomainChannel to save and restore
257           thread's local data when switching between domains.
259 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
261         * ManualResetEvent.cs: added check for disposed.
262         * Thread.cs: no need to init this field.
264 2003-10-01  Zoltan Varga  <vargaz@freemail.hu>
266         * Thread.cs: Add locking to AllocateNamedDataSlot and 
267         FreeNamedDataSlot.
269 Wed Aug 20 12:01:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
271         * Thread.cs: put all the fields at the start and add
272         more fields needed by the runtime.
274 2003-08-14  Lluis Sanchez Gual  <lluis@ximian.com>
276         * Thread.cs: SetData() method: use Hashtable.Contains to check
277           if a dataslot has been allocated (value could be null).
279 2003-07-23  Duncan Mak  <duncan@ximian.com>
281         * WaitHandle.cs (CheckDisposed): This method is not in the public
282         API, mark it as 'internal'.
284 2003-07-01  Dick Porter  <dick@ximian.com>
286         * Thread.cs: Throw an exception if thread creation failed.
287         (Better than just blowing up later.)
289 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
291         * ThreadPool.cs: use async delegate invoke.
293 2003-06-25  Dick Porter  <dick@ximian.com>
295         * WaitHandle.cs: Default handle value should be InvalidHandle, not
296         Zero.
298 2003-06-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
300         * ThreadPool.cs: correctly create a TimeSpan with provided the number of
301         milliseconds.
303         * WaitHandle.cs: fixes for WaitAny/All and TimeSpan.
305 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
307         * WaitHandle.cs: checks and exceptions.
309 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
311         * NativeEventCalls.cs: added CloseEvent_intenal.
312         * WaitHandle.cs: call CloseEvent_internal when disposing.
314 2003-05-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
316         * RegisteredWaitHandle.cs: check that the callback is not null before
317         invoking.
319         * ThreadPool.cs: fixed timeout -> TimeSpan conversions (closes bug
320         #43963). Queue the item before setting the handle. If there's a timeout,
321         avoid trying to Dequeue, getting the exception et al, just continue the
322         loop.
324 Mon May 19 09:07:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
326         * Monitor.cs: removed test_owner, the check is already done in the
327         icall.
329 Tue May 13 15:34:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
331         * Thread.cs: added missing field used by the runtime and
332         a new field to support thread-static data.
334 2003-04-17  Pedro Mart�ez Juli� <yoros@wanadoo.es>
336         * Timer.cs: Change the position of two lines because they were
337         before the "if" that ensures the integrity. After this, the first of
338         that two lines was producing a NullReferenceException.
340 2003-04-09  Dick Porter  <dick@ximian.com>
342         * Thread.cs: Make sure a reference to the ThreadStart delegate is
343         held.  There's no telling how long it will be before
344         Thread.Start() is called, and GC might destroy the delegate.
345         Thread() and Start() need to be rewritten so that the runtime
346         creates the new thread when Start() is called, which will simplify
347         the code a great deal.
349 2003-03-20  Miguel de Icaza  <miguel@ximian.com>
351         * Thread.cs (CurrentCuluture): use the invaraint culture instead
352         of "" for the current_culture setting.
354 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
356         * Thread.cs: Fix visibility of ResetAbort().
358 2003-03-18  Dick Porter  <dick@ximian.com>
360         * Thread.cs: Keep the thread state updated in all the places that
361         require it.  (Suspend, Resume and Interrupt not handled yet)
363 2003-03-03  Lluis Sanchez Gual <lluis@ideary.com>
365         * Thread.cs: Changed implementation of CurrentContext, adapted to the changes
366           in the runtime.
368 2003-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
370         * Thread.cs: implemented CurrentContext.
372 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
374         * Thread.cs: made the thread_id for the current thread accesible through
375         an internal property.  
377 2003-02-17  Dick Porter  <dick@ximian.com>
379         * Thread.cs: Added the Start semaphore field to the class.  Update
380         the thread state after Start() has returned, not before.
382 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
384         * Thread.cs (Sleep): Timeout.Infinite is a value argument.
386 2003-02-11  Dick Porter  <dick@ximian.com>
388         * Monitor.cs: Infinite wait is Infinite, not 0 ms
390 2003-02-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
392         * Thread.cs: fixed bug #37759.
394 2003-02-07  Patrik Torstensson
396         * Timer.cs: Set the Background thread flag for the timer thread
398 2003-02-05  Patrik Torstensson
400         * ThreadPool.cs: Reformated and fixed issue that made all thread exit the pool. 
402 2003-02-04  Lluis Sanchez Gual <lluis@ideary.com>
404         * ThreadPool.cs: Implemented RegisterWaitForSingleObject methods.
406 Tue Jan 28 17:55:59 CET 2003 Paolo Molaro <lupus@ximian.com>
408         * Thread.cs: delay-init datastorehash.
410 2003-01-10  Patrik Torstensson  <totte@race-x-change.com>
412         * ThreadPool.cs: Temporary removed the usage of monitor thread, implemented a 
413                     model more equal to the MS one.
415 2002-12-10  Dick Porter  <dick@ximian.com>
417         * Monitor.cs:
418         * Thread.cs:
419         * ThreadPool.cs:
420         * Timer.cs:
421         * WaitHandle.cs: Use TotalMilliseconds to convert a TimeSpan to
422         ms, not Milliseconds.
424 2002-12-07  Martin Baulig  <martin@ximian.com>
426         * Timer.cs: Make it actually work; now it no longer sets your
427         application on fire if you use a zero periode and Timer.Change()
428         actually works.
430 2002-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
432         * Timer.cs: implemented more stuff. It works now.
434 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
436         * Thread.cs: Implement GetDomain() and GetDomainID().
438 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
440         * ThreadPool.cs: now the monitor thread is not sleeping and checking if
441         more worker threads needed. It waits on _DataInQueue. If (and only if)
442         there's data in the queue it checks if more worker threads needed and
443         then sleeps 0.5s before waiting for queued data again.
445 2002-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
447         * ThreadPool.cs: set IsThreadPoolThread before starting the worker.
449 2002-09-11  Dick Porter  <dick@ximian.com>
451         * Mutex.cs: 
452         * ManualResetEvent.cs: 
453         * AutoResetEvent.cs: Use the WaitHandle.Handle property instead of
454         the private field
456         * WaitHandle.cs: Hide the os_handle field and the WaitOne_internal
457         method
459 2002-09-03  Dick Porter  <dick@ximian.com>
461         * Thread.cs: Added thread ID field
463 2002-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
465         * WaitHandle.cs: IDisposable fixes.
467 2002-08-14  Dick Porter  <dick@ximian.com>
469         * Thread.cs: Make CurrentUICulture act the same as CurrentCulture
470         for now.
472 2002-08-12  Dietmar Maurer  <dietmar@ximian.com>
474         * ThreadAbortException.cs: impl. ExceptionState property.
476         * Thread.cs: moved all instance variables to the start of the
477         class. added support for Thread::Abort()
479 2002-04-30  Dick Porter  <dick@ximian.com>
481         * Thread.cs: If LocalDataStoreSlot already has data set, remove it
482         before adding a new one.
484         Use the Thread object destructor to tell the runtime to close the
485         thread handle.
487 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
489         * Interlocked.cs: made all methods icalls.
491 2002-04-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
493         * IOCompletionCallback.cs: added attributes to the delegate
494         (CLSCompliant(false) and Serializable).
496 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
497         * Thread.cs: Fixed IsThreadPoolThread to use a internal property instead of extending 
498                                  the threadstate enum.
499         * ThreadPool.cs: Now using the internal Isthreadpoolthread property
500         * ThreadState.cs: removed non-standard enum (ThreadPoolThread)
502 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
504         * ThreadState.cs: Added enum for threadpool thread
505         * Thread.cs: changed the set/clr_state to be internal (used from threadpool)
506         * Thread.cs: Added IsThreadPoolThread
507         * ThreadPool.cs: Implementation of QueueUserWorkItem
509 Wed Feb 13 21:51:30 CET 2002 Paolo Molaro <lupus@ximian.com>
511         * Thread.cs: implement CurrentCulture property needed by
512         Convert.ChangeType() (used when compiling enums).
514 2002-01-23  Dick Porter  <dick@ximian.com>
516         * ManualResetEvent.cs: 
517         * AutoResetEvent.cs: Fixed DOS line endings
519 2002-01-22  Veronica De Santis <veron78@interfree.it>   
520         
521         * NativeEventCalls : Class that contains internal calls shared by Auto 
522                              and Manual Reset Events
523         * AutoResetEvents.cs : Added class AutoResetEvents and its implementation
524         * ManualResetEvents.cs : Added class ManualResetEvents and its implementation
526 2002-01-16  Veronica De Santis <veron78@interfree.it>   
527         
528         * WaitHandle.cs : Renamed handle to os_handle and make it protected
529                           instead of private.
530         * Mutex.cs : Write the System.Threading.Mutex methods ( constructors 
531                      and the ReleaseMutex)
533 2002-01-15  Dick Porter  <dick@ximian.com>
535         * WaitHandle.cs:
536         * Thread.cs: Make the runtime's idea of infinite timeouts coincide
537         with the class library's
539 2002-01-10  Dick Porter  <dick@ximian.com>
541         * WaitHandle.cs: Added checks for too many handles and null
542         handles in WaitAll() and WaitAny
543         
545 2002-01-05  Ravi Pratap  <ravi@ximian.com>
547         * AutoResetEvent.cs, ManualResetEvent.cs, Monitor.cs : MonoTODO
548         decoration.
550         * Mutex.cs, Overlapped.cs, ReaderWriterLock.cs, RegisteredWaitHandle.cs,
551         Thread.cs, ThreadAbortException.cs, ThreadPool.cs, Timer.cs, WaitHandler.cs : Ditto.
553 2001-12-11  Dick Porter  <dick@ximian.com>
555         * WaitHandle.cs: Implemented WaitAll(), WaitAny() and WaitOne() as
556         internal calls.
558 2001-11-26  Dick Porter  <dick@ximian.com>
560         * Thread.cs: DataSlot uses a single system TLS slot, and a
561         hashtable per thread.  Some minor changes to reflect the new
562         internal calls using the new IO library, and the newly-supported
563         bool returns from internal calls.
565         * Monitor.cs: Use bool returns from internal calls now they are
566         supported by the runtime.  Coalesce enter with the try_enter
567         internal call.
569 Wed Nov 14 17:06:18 CET 2001 Paolo Molaro <lupus@ximian.com>
571         * Overlapped.cs, ThreadPool.cs, Timer.cs: CLSCompliant updates.
573 2001-10-03  Dick Porter  <dick@ximian.com>
575         * Monitor.cs: Implemented all methods except the two Wait()
576         methods that take boolean parameters
578 2001-09-28  Dick Porter  <dick@ximian.com>
580         * Thread.cs: Implemented AllocateDataSlot(),
581         AllocateNamedDataSlot(), FreeNamedDataSlot(), GetData(),
582         GetNamedDataSlot(), SetData(), IsBackground.  Reworked Thread()
583         and Start() to avoid a race condition. Added thread-safe state
584         changing private operations.
586         * Monitor.cs: Comment out the GetType() calls because it isn't implemented yet
588 2001-09-25  Dick Porter  <dick@ximian.com>
590         * Thread.cs: Implement Join and timed Join, set correct state
591         around Start, Join and Sleep calls, implement IsAlive and
592         ThreadState properties.
594         * ThreadState.cs (Threading): Added StopRequested,
595         SuspendRequested, Suspended values
597 2001-09-23  Dick Porter  <dick@ximian.com>
599         * Thread.cs: Implemented CurrentThread and Sleep (both versions)
600         with internal calls, and Name.
602 2001-09-21  Dick Porter  <dick@ximian.com>
604         * Thread.cs: Implement Thread(ThreadStart) constructor and Start()
605         with an internal call
607         * WaitHandle.cs: Close calls Dispose(false)
609 2001-09-13  Dick Porter  <dick@ximian.com>
611         * ApartmentState.cs (Threading): Set the correct enum values
613 2001-09-13  Dick Porter  <dick@ximian.com>
615         * ApartmentState.cs, AutoResetEvent.cs, IOCompletionCallback.cs,
616         Interlocked.cs, LockCookie.cs, ManualResetEvent.cs, Monitor.cs,
617         Mutex.cs, NativeOverlapped.cs, Overlapped.cs, ReaderWriterLock.cs,
618         RegisteredWaitHandle.cs, SynchronizationLockException.cs,
619         Thread.cs, ThreadAbortException.cs, ThreadInterruptedException.cs,
620         ThreadPool.cs, ThreadStart.cs, ThreadStateException.cs,
621         Timeout.cs, Timer.cs, TimerCallback.cs, WaitCallback.cs,
622         WaitHandle.cs, WaitOrTimerCallback.cs: System.Threading class
623         stubs.
624         
625 2001-07-18  Michael Lambert <michaellambert@email.com>
627         * ThreadPriority.cs, ThreadState.cs: Add.