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