1 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
3 * Thread.cs: Change type of culture_info and ui_culture_info to
4 IntPtr. Implement correct culture handling for the UI culture as
7 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
9 * Thread.cs: Optimize CurrentCulture to avoid initializing the
10 serialization infrastructure in the common case when the culture is
13 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
15 * Thread.cs: Add new fields 'serialized_culture_info{_len}'.
17 * Thread.cs (CurrentCulture): Fix leaking of culture info objects
18 across appdomains. Partially fixes #50049.
20 2004-12-05 Miguel de Icaza <miguel@ximian.com>
22 * AutoResetEvent.cs (Set, Reset): If we are disposed, throw a
23 ObjectDisposedEvent, helped track the WebConnection destructor
26 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
28 * Timer.cs: don't invoke the callback twice when the timer changes.
31 2004-09-08 Marek Safar <marek.safar@seznam.cz>
33 * Interlocked.cs: Class is static in NET_2_0.
35 2004-09-04 Sebastien Pouliot <sebastien@ximian.com>
37 * Thread.cs: Changed an imperative security demand to declarative
38 (unsupported) so it doesn't (for now) call the security runtime.
40 2004-08-20 Sebastien Pouliot <sebastien@ximian.com>
42 * Thread.cs: Added Fx 2.0 properties/methods/attributes.
44 2004-08-12 Sebastien Pouliot <sebastien@ximian.com>
46 * CompressedStackSwitcher.cs: Added missing [ComVisible] and
47 [ReliabilityContract] attributes.
48 * ExecutionContext.cs: Added missing [ComVisible] and
49 [Serializable] attributes.
50 * HostExecutionContext.cs: Added missing [ComVisible] attribute.
51 * HostExecutionContextManager.cs: Added missing [ComVisible] and
52 [ReliabilityContract] attributes.
53 * HostExecutionContextSwitcher.cs: Added missing Equals and
54 GetHashCode methods and [ComVisible] and [ReliabilityContract] attrs.
55 * ParameterizedThreadStart.cs: New delegate in NET_2_0.
56 * SendOrPostCallback.cs: Added missing [ComVisible] attribute.
57 * SynchronizationContext.cs: Added new (2.0 beta1) methods Copy and
58 WaitHelper. Added missing [ComVisible] and [ReliabilityContract] attrs.
59 * SynchronizationContextSwitcher.cs: Added missing [ComVisible] and
60 [ReliabilityContract] attributes.
62 2004-08-08 Sebastien Pouliot <sebastien@ximian.com>
64 * HostExecutionContext.cs: Fx 2.0 stub required for AppDomain.
65 * HostExecutionContextManager.cs: Fx 2.0 stub required for AppDomain.
66 * HostExecutionContextSwitcher.cs: Fx 2.0 stub required for AppDomain.
68 2004-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
70 * Timer.cs: don't invoke the callback if the period changes before the
71 due time. Fixes bug #62421.
73 2004-07-27 Lluis Sanchez Gual <lluis@novell.com>
75 * ExecutionContext.cs, ExecutionContextSwitcher.cs,
76 SynchronizationContext.cs, SynchronizationContextSwitcher.cs: Added
79 2004-07-15 Dick Porter <dick@ximian.com>
81 * Thread.cs: Hold a lock in GetNamedDataSlot. Fixes bug 61582,
82 based on patch by Sébastien Robitaille
83 (sebastien.robitaille@croesus.com). Also fix instances of
84 lock(typeof(Thread)) to lock a private object instead.
86 2004-07-14 Sebastien Pouliot <sebastien@ximian.com>
88 * AsyncFlowControl.cs: New structure in Fx 2.0 required in
89 System.Security namespace.
90 * CompressedStackSwitcher.cs: New structure in Fx 2.0 required in
91 System.Security namespace.
92 * ContextCallback.cs: New delegate in Fx 2.0 required in
93 System.Security namespace.
94 * CompressedStack.cs: Updated API for NET_2_0 profile.
96 2004-07-10 Lluis Sanchez Gual <lluis@ximian.com>
98 * SendOrPostCallback.cs: New delegate.
100 2004-06-24 Dick Porter <dick@ximian.com>
102 * Mutex.cs: Implement the createdNew parameter
104 2004-06-15 Gert Driesen <drieseng@users.sourceforge.net>
106 * Thread.cs: changed return type of VolatileRead to UIntPtr
107 * ThreadPool.cs: set return type of SetMinThreads to bool
109 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
111 * Thread.cs: Added new fields to keep sync with MonoThread.
112 Removed state changes in Sleep and Join. The state change is now done
113 in the icall. For accessing to internal fields lock with synch_lock
114 instead of this, which can be a source of deadlocks.
116 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
118 * Timer.cs: Don't abort the thread if Dispose() is called from the runner
121 2004-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
124 (CurrentPrincipal): lock on CurrentThread, not typeof (Thread) and set
125 the thread IPrincipal if we get it from the AppDomain.
127 2004-06-09 Gert Driesen <drieseng@users.sourceforge.net>
129 * CompressedStack.cs: Added finalizer to match public API of
132 2004-05-19 Lluis Sanchez Gual <lluis@ximian.com>
134 * Thread.cs: Some fixes in Abort. Implemented Suspend and Resume.
135 Added internal interruption_requested field.
137 2004-05-13 Sebastien Pouliot <sebastien@ximian.com>
139 * CompressedStack.cs: Added an internal constructor so a default one
140 doesn't appear with corcompare.
141 * Thread.cs: Added missing MemoryBarrier (only for 1.1) and SpinWait to please
142 corcompare. Both throw a NotImplementedException.
143 * ThreadPool.cs: Added missing UnsafeRegisterWaitForSingleObject methods (4
144 overloads) to please corcompare. All throw a NotImplementedException.
146 2004-05-12 Zoltan Varga <vargaz@freemail.hu>
148 * CompressedStack.cs: New file.
150 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
152 * ThreadPool.cs: Added GetMinThreads and SetMinThreads.
153 * Timer.cs: In Change, return false if the timer has been disposed.
154 In Dispose, notify the WaitHandle.
156 2004-04-11 Lluis Sanchez Gual <lluis@ximian.com>
158 * ReaderWriterLock.cs: More fixes: never wait where acquiring a reader lock
159 if the thread already has the lock. Added readyWaitingReaders variable to
160 keep track of threads ready to get the reader lock.
162 2004-04-11 Lluis Sanchez Gual <lluis@ximian.com>
164 * LockQueue.cs: Moved lockCount change inside the rwlock lock. Removed
165 lock(this) when entering the rwlock to avoid a deadlock.
166 * ReaderWriterLock.cs: In AcquireWriterLock, queue the thread if the queue
167 is not empty (even if state==0).
169 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
171 * Timer.cs: Call the callback immediately if dueTime is 0. Fixes
174 2004-04-08 Jackson Harper <jackson@ximian.com>
176 * ReaderWriterLock.cs: Fix tyop
178 2004-04-08 Lluis Sanchez Gual <lluis@ximian.com>
180 * ReaderWriterLock.cs: Changed some methods to private.
181 * WaitHandle.cs: In Wait methods, release the synchronization context when
184 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
186 * Timer.cs: call Abort on the Runner instance too.
188 2004-04-07 Jackson Harper <jackson@ximian.com>
190 * Thread.cs: Use new culture info method for constructing the
193 2004-04-07 Lluis Sanchez Gual <lluis@ximian.com>
195 * ReaderWriterLock.cs: When a thread holds a writer lock, a call to
196 AcquireReaderLock works like a call to AcquireWriterLock.
198 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
200 * Monitor.cs: In Wait(), release the synchronization context when
203 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
205 * LockCookie.cs: Keep in this class the count of reader or writer locks
206 for a thread, not only whether it has locks or not.
207 * LockQueue.cs: Added property for checking if a thread is waiting in
208 the queue. Wait now returns a boolean that set to false on timeout
210 * ReaderWriterLock.cs: Started fixing bugs but I had to rewrite a lot of it.
211 The main change is that now it keeps a reader lock count for each
212 thread. This is needed since methods like ReleaseLock or
213 UpgradeToWriterLock need to return a per-thread status in LockCookie.
214 Also added support for recursive writer-lock requests.
216 2004-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
218 * ThreadAbortException.cs: use same HResult as MS.
219 * Timer.cs: abort the running thread when disposing the Timer. This
220 fixes NullRefs when finishing xsp.
222 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
224 * NativeOverlapped.cs: added 2 new internal fields.
225 * Overlapped.cs: implemented, but it's not used.
227 * ThreadPool.cs: implemented BindHandle.
229 2004-03-08 Zoltan Varga <vargaz@freemail.hu>
231 * Timer.cs (Dispose): Applied patch from Jaroslaw Kowalski
232 (jaak@zd.com.pl). Fix finalization problems during appdomain unload.
234 2004-02-23 Jackson Harper <jackson@ximian.com>
236 * LockCookie.cs: Add some fields for restoring locks.
237 * ReaderWriterLock.cs: Implement
238 * LockQueue.cs: New File - used for queueing thread locks in
241 2004-02-19 Jackson Harper <jackson@ximian.com>
243 * Monitor.cs: Fix spelleng.
245 2004-02-09 Zoltan Varga <vargaz@freemail.hu>
247 * Thread.cs: Add fields added to unmanaged MonoThread here as well.
248 Fixes random errors caused by memory corruption.
250 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
252 * Thread.cs: Store the thread name in unmanaged memory, since the
253 thread object is shared between appdomains.
255 2004-02-05 Sebastien Pouliot <sebastien@ximian.com>
257 * Thread.cs: Implemented CurrentPrincipal.
259 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
261 * Thread.cs: delayed thread creation until Start is called. If we
262 don't do that and Start() is not called, the thread is leaked. First
263 step towards fixing bug #53078.
265 2003-12-02 Dick Porter <dick@ximian.com>
267 * Thread.cs: Throw InvalidOperationException if Thread.Name is
270 2003-12-01 Dick Porter <dick@ximian.com>
272 * Thread.cs: Implement CurrentCulture and CurrentUICulture
274 2003-11-12 Miguel de Icaza <miguel@ximian.com>
276 * Thread.cs: Add new VolatileRead/VolatileWrite methods from 1.1
278 2003-10-23 Lluis Sanchez Gual <lluis@ximian.com>
280 * Thread.cs: Added ResetDataStoreStatus and RestoreDataStoreStatus
281 methods. They are used in CrossAppDomainChannel to save and restore
282 thread's local data when switching between domains.
284 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
286 * ManualResetEvent.cs: added check for disposed.
287 * Thread.cs: no need to init this field.
289 2003-10-01 Zoltan Varga <vargaz@freemail.hu>
291 * Thread.cs: Add locking to AllocateNamedDataSlot and
294 Wed Aug 20 12:01:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
296 * Thread.cs: put all the fields at the start and add
297 more fields needed by the runtime.
299 2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
301 * Thread.cs: SetData() method: use Hashtable.Contains to check
302 if a dataslot has been allocated (value could be null).
304 2003-07-23 Duncan Mak <duncan@ximian.com>
306 * WaitHandle.cs (CheckDisposed): This method is not in the public
307 API, mark it as 'internal'.
309 2003-07-01 Dick Porter <dick@ximian.com>
311 * Thread.cs: Throw an exception if thread creation failed.
312 (Better than just blowing up later.)
314 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
316 * ThreadPool.cs: use async delegate invoke.
318 2003-06-25 Dick Porter <dick@ximian.com>
320 * WaitHandle.cs: Default handle value should be InvalidHandle, not
323 2003-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
325 * ThreadPool.cs: correctly create a TimeSpan with provided the number of
328 * WaitHandle.cs: fixes for WaitAny/All and TimeSpan.
330 2003-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
332 * WaitHandle.cs: checks and exceptions.
334 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
336 * NativeEventCalls.cs: added CloseEvent_intenal.
337 * WaitHandle.cs: call CloseEvent_internal when disposing.
339 2003-05-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
341 * RegisteredWaitHandle.cs: check that the callback is not null before
344 * ThreadPool.cs: fixed timeout -> TimeSpan conversions (closes bug
345 #43963). Queue the item before setting the handle. If there's a timeout,
346 avoid trying to Dequeue, getting the exception et al, just continue the
349 Mon May 19 09:07:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
351 * Monitor.cs: removed test_owner, the check is already done in the
354 Tue May 13 15:34:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
356 * Thread.cs: added missing field used by the runtime and
357 a new field to support thread-static data.
359 2003-04-17 Pedro Mart�ez Juli� <yoros@wanadoo.es>
361 * Timer.cs: Change the position of two lines because they were
362 before the "if" that ensures the integrity. After this, the first of
363 that two lines was producing a NullReferenceException.
365 2003-04-09 Dick Porter <dick@ximian.com>
367 * Thread.cs: Make sure a reference to the ThreadStart delegate is
368 held. There's no telling how long it will be before
369 Thread.Start() is called, and GC might destroy the delegate.
370 Thread() and Start() need to be rewritten so that the runtime
371 creates the new thread when Start() is called, which will simplify
372 the code a great deal.
374 2003-03-20 Miguel de Icaza <miguel@ximian.com>
376 * Thread.cs (CurrentCuluture): use the invaraint culture instead
377 of "" for the current_culture setting.
379 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
381 * Thread.cs: Fix visibility of ResetAbort().
383 2003-03-18 Dick Porter <dick@ximian.com>
385 * Thread.cs: Keep the thread state updated in all the places that
386 require it. (Suspend, Resume and Interrupt not handled yet)
388 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
390 * Thread.cs: Changed implementation of CurrentContext, adapted to the changes
393 2003-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
395 * Thread.cs: implemented CurrentContext.
397 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
399 * Thread.cs: made the thread_id for the current thread accesible through
400 an internal property.
402 2003-02-17 Dick Porter <dick@ximian.com>
404 * Thread.cs: Added the Start semaphore field to the class. Update
405 the thread state after Start() has returned, not before.
407 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
409 * Thread.cs (Sleep): Timeout.Infinite is a value argument.
411 2003-02-11 Dick Porter <dick@ximian.com>
413 * Monitor.cs: Infinite wait is Infinite, not 0 ms
415 2003-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
417 * Thread.cs: fixed bug #37759.
419 2003-02-07 Patrik Torstensson
421 * Timer.cs: Set the Background thread flag for the timer thread
423 2003-02-05 Patrik Torstensson
425 * ThreadPool.cs: Reformated and fixed issue that made all thread exit the pool.
427 2003-02-04 Lluis Sanchez Gual <lluis@ideary.com>
429 * ThreadPool.cs: Implemented RegisterWaitForSingleObject methods.
431 Tue Jan 28 17:55:59 CET 2003 Paolo Molaro <lupus@ximian.com>
433 * Thread.cs: delay-init datastorehash.
435 2003-01-10 Patrik Torstensson <totte@race-x-change.com>
437 * ThreadPool.cs: Temporary removed the usage of monitor thread, implemented a
438 model more equal to the MS one.
440 2002-12-10 Dick Porter <dick@ximian.com>
446 * WaitHandle.cs: Use TotalMilliseconds to convert a TimeSpan to
447 ms, not Milliseconds.
449 2002-12-07 Martin Baulig <martin@ximian.com>
451 * Timer.cs: Make it actually work; now it no longer sets your
452 application on fire if you use a zero periode and Timer.Change()
455 2002-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
457 * Timer.cs: implemented more stuff. It works now.
459 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
461 * Thread.cs: Implement GetDomain() and GetDomainID().
463 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
465 * ThreadPool.cs: now the monitor thread is not sleeping and checking if
466 more worker threads needed. It waits on _DataInQueue. If (and only if)
467 there's data in the queue it checks if more worker threads needed and
468 then sleeps 0.5s before waiting for queued data again.
470 2002-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
472 * ThreadPool.cs: set IsThreadPoolThread before starting the worker.
474 2002-09-11 Dick Porter <dick@ximian.com>
477 * ManualResetEvent.cs:
478 * AutoResetEvent.cs: Use the WaitHandle.Handle property instead of
481 * WaitHandle.cs: Hide the os_handle field and the WaitOne_internal
484 2002-09-03 Dick Porter <dick@ximian.com>
486 * Thread.cs: Added thread ID field
488 2002-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
490 * WaitHandle.cs: IDisposable fixes.
492 2002-08-14 Dick Porter <dick@ximian.com>
494 * Thread.cs: Make CurrentUICulture act the same as CurrentCulture
497 2002-08-12 Dietmar Maurer <dietmar@ximian.com>
499 * ThreadAbortException.cs: impl. ExceptionState property.
501 * Thread.cs: moved all instance variables to the start of the
502 class. added support for Thread::Abort()
504 2002-04-30 Dick Porter <dick@ximian.com>
506 * Thread.cs: If LocalDataStoreSlot already has data set, remove it
507 before adding a new one.
509 Use the Thread object destructor to tell the runtime to close the
512 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
514 * Interlocked.cs: made all methods icalls.
516 2002-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
518 * IOCompletionCallback.cs: added attributes to the delegate
519 (CLSCompliant(false) and Serializable).
521 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
522 * Thread.cs: Fixed IsThreadPoolThread to use a internal property instead of extending
523 the threadstate enum.
524 * ThreadPool.cs: Now using the internal Isthreadpoolthread property
525 * ThreadState.cs: removed non-standard enum (ThreadPoolThread)
527 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
529 * ThreadState.cs: Added enum for threadpool thread
530 * Thread.cs: changed the set/clr_state to be internal (used from threadpool)
531 * Thread.cs: Added IsThreadPoolThread
532 * ThreadPool.cs: Implementation of QueueUserWorkItem
534 Wed Feb 13 21:51:30 CET 2002 Paolo Molaro <lupus@ximian.com>
536 * Thread.cs: implement CurrentCulture property needed by
537 Convert.ChangeType() (used when compiling enums).
539 2002-01-23 Dick Porter <dick@ximian.com>
541 * ManualResetEvent.cs:
542 * AutoResetEvent.cs: Fixed DOS line endings
544 2002-01-22 Veronica De Santis <veron78@interfree.it>
546 * NativeEventCalls : Class that contains internal calls shared by Auto
547 and Manual Reset Events
548 * AutoResetEvents.cs : Added class AutoResetEvents and its implementation
549 * ManualResetEvents.cs : Added class ManualResetEvents and its implementation
551 2002-01-16 Veronica De Santis <veron78@interfree.it>
553 * WaitHandle.cs : Renamed handle to os_handle and make it protected
555 * Mutex.cs : Write the System.Threading.Mutex methods ( constructors
556 and the ReleaseMutex)
558 2002-01-15 Dick Porter <dick@ximian.com>
561 * Thread.cs: Make the runtime's idea of infinite timeouts coincide
562 with the class library's
564 2002-01-10 Dick Porter <dick@ximian.com>
566 * WaitHandle.cs: Added checks for too many handles and null
567 handles in WaitAll() and WaitAny
570 2002-01-05 Ravi Pratap <ravi@ximian.com>
572 * AutoResetEvent.cs, ManualResetEvent.cs, Monitor.cs : MonoTODO
575 * Mutex.cs, Overlapped.cs, ReaderWriterLock.cs, RegisteredWaitHandle.cs,
576 Thread.cs, ThreadAbortException.cs, ThreadPool.cs, Timer.cs, WaitHandler.cs : Ditto.
578 2001-12-11 Dick Porter <dick@ximian.com>
580 * WaitHandle.cs: Implemented WaitAll(), WaitAny() and WaitOne() as
583 2001-11-26 Dick Porter <dick@ximian.com>
585 * Thread.cs: DataSlot uses a single system TLS slot, and a
586 hashtable per thread. Some minor changes to reflect the new
587 internal calls using the new IO library, and the newly-supported
588 bool returns from internal calls.
590 * Monitor.cs: Use bool returns from internal calls now they are
591 supported by the runtime. Coalesce enter with the try_enter
594 Wed Nov 14 17:06:18 CET 2001 Paolo Molaro <lupus@ximian.com>
596 * Overlapped.cs, ThreadPool.cs, Timer.cs: CLSCompliant updates.
598 2001-10-03 Dick Porter <dick@ximian.com>
600 * Monitor.cs: Implemented all methods except the two Wait()
601 methods that take boolean parameters
603 2001-09-28 Dick Porter <dick@ximian.com>
605 * Thread.cs: Implemented AllocateDataSlot(),
606 AllocateNamedDataSlot(), FreeNamedDataSlot(), GetData(),
607 GetNamedDataSlot(), SetData(), IsBackground. Reworked Thread()
608 and Start() to avoid a race condition. Added thread-safe state
609 changing private operations.
611 * Monitor.cs: Comment out the GetType() calls because it isn't implemented yet
613 2001-09-25 Dick Porter <dick@ximian.com>
615 * Thread.cs: Implement Join and timed Join, set correct state
616 around Start, Join and Sleep calls, implement IsAlive and
617 ThreadState properties.
619 * ThreadState.cs (Threading): Added StopRequested,
620 SuspendRequested, Suspended values
622 2001-09-23 Dick Porter <dick@ximian.com>
624 * Thread.cs: Implemented CurrentThread and Sleep (both versions)
625 with internal calls, and Name.
627 2001-09-21 Dick Porter <dick@ximian.com>
629 * Thread.cs: Implement Thread(ThreadStart) constructor and Start()
630 with an internal call
632 * WaitHandle.cs: Close calls Dispose(false)
634 2001-09-13 Dick Porter <dick@ximian.com>
636 * ApartmentState.cs (Threading): Set the correct enum values
638 2001-09-13 Dick Porter <dick@ximian.com>
640 * ApartmentState.cs, AutoResetEvent.cs, IOCompletionCallback.cs,
641 Interlocked.cs, LockCookie.cs, ManualResetEvent.cs, Monitor.cs,
642 Mutex.cs, NativeOverlapped.cs, Overlapped.cs, ReaderWriterLock.cs,
643 RegisteredWaitHandle.cs, SynchronizationLockException.cs,
644 Thread.cs, ThreadAbortException.cs, ThreadInterruptedException.cs,
645 ThreadPool.cs, ThreadStart.cs, ThreadStateException.cs,
646 Timeout.cs, Timer.cs, TimerCallback.cs, WaitCallback.cs,
647 WaitHandle.cs, WaitOrTimerCallback.cs: System.Threading class
650 2001-07-18 Michael Lambert <michaellambert@email.com>
652 * ThreadPriority.cs, ThreadState.cs: Add.