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