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