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