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