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