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