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