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