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