5b1986d28dcc3a3232804de96070910e78ffb75d
[mono.git] / mcs / class / corlib / System.Threading / ChangeLog
1 2008-04-11  Zoltan Varga  <vargaz@gmail.com>
2
3         * Thread.cs: Make in_currentculture non-static. Fixes #378892.
4
5 2008-04-07  Dick Porter  <dick@ximian.com>
6
7         * Thread.cs: Fix throwing of exceptions when manipulating
8         ApartmentState.  Fixes part of bug 324338.
9
10 2008-04-01: Eyal Alaluf <eyala@mainsoft.com>
11
12         * Thread.cs: Put a NumberFormatter instance as a member of the current
13           thread so it can reused for performint ToString conversions.
14
15 2008-03-26  Massimiliano Mantione <massi@ximian.com>
16         * Thread.cs: Renamed "unused6" because it will be used to hold
17         the "mono_thread_manage" callback.
18
19 Tue Feb 26 17:51:58 CET 2008 Paolo Molaro <lupus@ximian.com>
20
21         * Timer.cs: use a monotonic clock to schedule timers
22         (fixes part of bug#347476).
23
24 Fri Feb 22 11:23:53 CET 2008 Paolo Molaro <lupus@ximian.com>
25
26         * Thread.cs: implemented Begin/EndCriticalRegion.
27
28 2008-02-03  Sebastien Pouliot  <sebastien@ximian.com>
29
30         * WaitHandle.cs: Ifdef out some unused code (found by Gendarme).
31
32 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
33
34         * Thread.cs (set_CurrentCulture): If the culture is read-only, cache the result
35         of serializing it.
36         (set_CurrentUICulture): Ditto.
37
38 2008-01-03  Zoltan Varga  <vargaz@gmail.com>
39
40         * Thread.cs (set_CurrentCulture): Avoid the serialization overhead if
41         the new culture is equal to the old one.
42
43 2007-12-27  Zoltan Varga  <vargaz@gmail.com>
44
45         * Thread.cs: Change the type of synch_cs to an IntPtr to be in synch with the
46         unmanaged definition.
47
48 2007-11-20  Atsushi Enomoto  <atsushi@ximian.com>
49
50         * ReaderWriterLock.cs : ... and avoid extra finalizer call.
51
52 2007-11-20  Atsushi Enomoto  <atsushi@ximian.com>
53
54         * ReaderWriterLock.cs : adding missing 2.0 destructor (does nothing).
55
56 Thu Nov 8 18:36:25 CET 2007 Paolo Molaro <lupus@ximian.com>
57
58         * Timer.cs: if period is 0 with a non-infinite due time, we
59         run the callback just once (bug #340212).
60
61 2007-10-24  Dick Porter  <dick@ximian.com>
62
63         * Thread.cs: Call Thread_init on the new 2.0 constructors too.
64
65 2007-10-24  Dick Porter  <dick@ximian.com>
66
67         * Thread.cs: Assign the ManagedThreadId when it is asked for,
68         rather than in the constructor, so ThreadPool threads also work.
69         Fixes bug 335579 (and doesn't break 325367 or 325566)
70
71 2007-10-24  Atsushi Enomoto  <atsushi@ximian.com>
72
73         * SynchronizationContext.cs : removed SendOrPost().
74
75 Wed Oct 17 13:24:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
76
77         * Timer.cs: better cleanup test for the expired array.
78
79 Tue Oct 16 17:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
80
81         * Timer.cs: remove expired timers from the the jobs list.
82
83 Tue Oct 16 12:14:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
84
85         * Timer.cs: rewrote to use threadpool threads to invoke the callbacks,
86         avoid Thread.Abort and Thread.Interrupt and use a single scheduler
87         thread, partially from the patch of Rafael Ferreira in bug #315999.
88         Fixes bug #315999, #332206.
89
90 2007-10-15  Dick Porter  <dick@ximian.com>
91
92         * Thread.cs: Initialise synch_cs to null now we aren't using it as
93         a monitor lock
94
95 2007-09-25  Dick Porter  <dick@ximian.com>
96
97         * Thread.cs: Keep ManagedThreadId constant over the lifetime of a
98         Thread.  Patch from jlarimer@gmail.com fixing bugs 325367 and
99         325566.
100
101 2007-09-25  Jonathan Pobst  <monkey@jpobst.com>
102
103         * SynchronizationContext.cs: Implement SetSynchronizationContext.
104
105 2007-09-06  Dick Porter  <dick@ximian.com>
106
107         * Timer.cs: Only hold a WeakReference to the runner thread, to
108         work around an issue when finalizing at shutdown or (I think)
109         appdomain unload.  (Basically, the Thread was being finalized
110         first, but the Timer's finalizer was still trying to reference it
111         subsequently.)
112
113 2007-08-10  Gert Driesen  <drieseng@users.sourceforge.net>
114
115         * Thread.cs: Throw ThreadStateException when retrieving ApartmentState
116         or IsBackground if thread is stopped. Fixes bug #81658.
117
118 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
119
120         * Thread.cs: Add a fixme.
121
122 2007-07-21  Miguel de Icaza  <miguel@novell.com>
123
124         * WaitHandle.cs (Handle): It turns out that we should never create
125         new SafeWaitHandles, as applications will assume that a
126         SafeWaitHandle pulled from this will be the same after a Handle
127         update (from Gert's test):
128
129         
130                 AutoResetEvent are1 = new AutoResetEvent (false);
131                 AutoResetEvent are2 = new AutoResetEvent (false);
132                 SafeWaitHandle swh1 = are1.SafeWaitHandle;
133                 Console.WriteLine ("#A1:" + !swh1.IsClosed);
134                 Console.WriteLine ("#A2:" + !swh1.IsInvalid);
135                 IntPtr dummyHandle = (IntPtr) 2;
136                 are1.Handle = dummyHandle;
137                 Console.WriteLine ("#A3:" + (are1.Handle == dummyHandle));
138                 Console.WriteLine ("#A4:" + !swh1.IsClosed);
139                 Console.WriteLine ("#A5:" + !swh1.IsClosed);
140                 Console.WriteLine ("#A6:" + !swh1.IsInvalid);
141                 Console.WriteLine ("#A7:" + !are1.SafeWaitHandle.IsClosed);
142                 Console.WriteLine ("#A8:" +
143                 !are1.SafeWaitHandle.IsInvalid);
144
145         We would return in A4, A5, A6 true, even when we have set the
146         Handle ourselves. 
147
148         * 
149
150 2007-07-18  Miguel de Icaza  <miguel@novell.com>
151
152         * WaitHandle.cs (Handle): in the 2.0 profile, explicitly dispose
153         the old SafeWaitHandle, do not wait for the finalizer to run;
154
155         Take ownership of the handle;   The docs did not say that
156         assigning to this value would lead to a leak, the docs said that
157         in the 1.0 and 1.1 profiles assigning to this property might lead
158         to a leak.   My mistake. 
159
160         Fixes: 82134
161         
162 2007-07-09  Atsushi Enomoto  <atsushi@ximian.com>
163
164         * LockCookie.cs, AsyncFlowControl.cs :
165           added missing operator == and !=.
166
167 2007-05-22  Jonathan Chambers  <joncham@gmail.com>
168
169         * Thread.cs: Use & to check ThreadState rather than ==.
170         Fixes AlbumSurfer regression.
171
172 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
173
174         * Thread.cs: Implement ApartmentState related items.
175
176 2007-05-02  Dick Porter  <dick@ximian.com>
177
178         * ReaderWriterLock.cs: ReaderWriterLock derives from
179         CriticalFinalizerObject in the 2.0 profile
180
181 2007-05-01  Dick Porter  <dick@ximian.com>
182
183         * ThreadState.cs: 
184         * AsyncFlowControl.cs: 
185         * Interlocked.cs: 
186         * RegisteredWaitHandle.cs: 
187         * TimerCallback.cs: 
188         * ThreadStateException.cs: 
189         * Monitor.cs: 
190         * ThreadStart.cs: 
191         * WaitOrTimerCallback.cs: 
192         * LockCookie.cs: 
193         * EventWaitHandle.cs: 
194         * WaitHandle.cs: 
195         * ThreadAbortException.cs: 
196         * ThreadPriority.cs: 
197         * ReaderWriterLock.cs: 
198         * NativeOverlapped.cs: 
199         * Mutex.cs: 
200         * Overlapped.cs: 
201         * ThreadPool.cs: 
202         * ApartmentState.cs: 
203         * EventResetMode.cs: 
204         * SynchronizationLockException.cs: 
205         * ManualResetEvent.cs: 
206         * WaitCallback.cs: 
207         * IOCompletionCallback.cs: 
208         * AutoResetEvent.cs: 
209         * AbandonedMutexException.cs: 
210         * SendOrPostCallback.cs: 
211         * ThreadInterruptedException.cs: Update to 2.0 profile
212
213 Thu Apr 19 16:47:52 CEST 2007 Paolo Molaro <lupus@ximian.com>
214
215         * ThreadPool.cs: patch from Robert Jordan to implement
216         ThreadPool.SetMaxThreads.
217
218 2007-04-03  Alp Toker  <alp@atoker.com>
219
220         * Monitor.cs: Class is static in 2.0.
221
222 2007-03-27  Dick Porter  <dick@ximian.com>
223
224         * Mutex.cs: Throw ApplicationException if ReleaseMutex() fails.
225         Fixes bug 79358.
226
227 Tue Jan 23 17:43:50 CET 2007 Paolo Molaro <lupus@ximian.com>
228
229         * Thread.cs: mark the GC-tracked field with UIntPtr.
230
231 2006-12-31  Miguel de Icaza  <miguel@novell.com>
232
233         * ThreadPool.cs: Stub a method.
234
235 2006-12-11  Miguel de Icaza  <miguel@novell.com>
236
237         * WaitHandle.cs: In 2.0 use SafeWaitHandles and the SafeWaitHandle
238         patterns instead of using directly the IntPtr Handle.
239
240         Refactor the code to reuse as much as possible, and follow the new
241         conventions where appropriate. 
242
243 2006-11-07  Robert Jordan  <robertj@gmx.net>
244
245         * WaitHandle.cs: Don't assume Assembly.GetEntryAssembly () !=
246         null.  Fixes bug #79859.
247
248 2006-11-02  Dick Porter  <dick@ximian.com>
249
250         * Thread.cs: Use the new Interrupt and SpinWait icalls.
251
252 2006-07-04  Atsushi Enomoto  <atsushi@ximian.com>
253
254         * WaitHandle.cs : CheckArray() is also used in WaitAny(), so added
255           extra argument to skip STAThread check.
256
257 2006-06-30  Duncan Mak  <duncan@novell.com>
258
259         * WaitHandle.cs (CheckArray): Avoid using reflection unless we
260         really need to.
261
262 2006-06-29  Duncan Mak  <duncan@novell.com>
263
264         * WaitHandle.cs (CheckArray): Throw NotSupportedException if the
265         current thread is marked with the STAThreadAttribute. Fixes bug
266         #78455.
267
268 2006-05-05  Sebastien Pouliot  <sebastien@ximian.com>
269
270         * ExecutionContext.cs: Don't capture the compressed stack unless the 
271         security manager is active (this wasn't ready to be called in 
272         production code).
273
274 2004-04-29  Atsushi Enomoto  <atsushi@ximian.com>
275
276         * Timer.cs : avoid NullReferenceException when it is already disposed.
277           Patch by pawel.sakowski@mind-breeze.com. Fixed bug #78208.
278
279 2004-04-28  Atsushi Enomoto  <atsushi@ximian.com>
280
281         * SynchronizationContext.cs : use ThreadPool in Post(), as suggested
282           by cl (bug #78139).
283
284 2004-04-04  Atsushi Enomoto  <atsushi@ximian.com>
285
286         * Thread.cs : base class is CriticalFinalizerObject.
287         * ThreadStartException.cs : no public constructors.
288
289 Wed Mar 29 18:29:55 CEST 2006 Paolo Molaro <lupus@ximian.com>
290
291         * Thread.cs: update for the runtime changes to culture caching.
292
293 Wed Mar 15 16:35:49 CET 2006 Paolo Molaro <lupus@ximian.com>
294
295         * Thread.cs: updates for LocalDataStoreSlot: we use an array as
296         storage for the slots now so that LocalDataStoreSlot objects an be
297         garbage collected if the user doesn't keep a reference to them.
298
299 2006-02-09  Miguel de Icaza  <miguel@novell.com>
300
301         * Monitor.cs: Patch from Thong Nguyen, Wait (.., Timeout) method
302         should allow a -1 (Timeout.Infinite) to mean indefinite wait (the
303         code already supported this.
304
305         Removed also a LAMESPEC for missing argument checking in Wait with
306         the int argument.
307         
308         Fixed the use of exceptions.
309
310 2005-12-23  Dick Porter  <dick@ximian.com>
311
312         * EventWaitHandle.cs: 
313         * Mutex.cs: Implement OpenExisting
314
315         * NativeEventCalls.cs: Add OpenEvent icall for OpenExisting in
316         2.0.  Add a "created" boolean out parameter to CreateEvent icall.
317
318         * ManualResetEvent.cs: 
319         * AutoResetEvent.cs: Update CreateEvent icall signature (now has
320         "created" boolean out parameter.)
321
322 2005-12-17  Dick Porter  <dick@ximian.com>
323
324         * ThreadStartException.cs: 
325         * EventWaitHandle.cs: 
326         * EventResetMode.cs: 
327         * AbandonedMutexException.cs: New for 2.0 profile
328
329         * ThreadState.cs: 
330         * Interlocked.cs: 
331         * RegisteredWaitHandle.cs: 
332         * Monitor.cs: 
333         * ThreadPriority.cs: 
334         * Mutex.cs: 
335         * ManualResetEvent.cs: 
336         * AutoResetEvent.cs: Updated for 2.0 profile
337
338 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
339
340         * Interlocked.cs: Add T:class constraint to the generic 
341         CompareExchange and Exchange methods.
342
343 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
344
345         * Interlocked.cs: Add generic CompareExchange and Exchange methods.
346
347 2005-11-17  Sebastien Pouliot  <sebastien@ximian.com>
348
349         * WaitHandleCannotBeOpenedException.cs: New (2.0). Is required to 
350         compile the Semaphore tests (in System.dll).
351
352 2005-10-23  Marek Safar  <marek.safar@seznam.cz>
353
354         * SynchronizationContext.cs: A few simple fixes.
355
356 2005-10-06  Sebastien Pouliot  <sebastien@ximian.com>
357  
358         * Thread.cs: Copy an existing IPrincipal to new threads. Fix bug 
359         #76332.
360
361 2005-10-06  Sebastien Pouliot  <sebastien@ximian.com> 
362
363         * Thread.cs: Added new attributes, [ReliabilityContract] for 
364         destructor and [Obsolete] for [Get|Set]CompressedStack, that were 
365         added in 2.0 RC.
366
367 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
368
369         * Thread.cs (MemoryBarrier): Make this an icall.
370
371 2005-09-10  Zoltan Varga  <vargaz@gmail.com>
372
373         * Thread.cs (Interrupt): Make this throw a NotImplementedException.
374
375 2005-09-09  Martin Baulig  <martin@ximian.com>
376
377         * Timer.cs (Timer.Runner.Start): Silently catch
378         ObjectDisposedException and return; works around some race
379         condition on thread abort.      
380
381 2005-08-19  Dick Porter  <dick@ximian.com>
382
383         * Thread.cs: Reserve 64 bits for the thread ID.
384
385 2005-07-19  Martin Baulig  <martin@ximian.com>
386
387         * Timer.cs (Timer.Runner.Start): Fix a race condition which was
388         causing a hang on exit int he debugger: check `!disposed' before
389         `start_event.WaitOne ()' and again after it.
390
391 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
392
393         * Thread.cs: check that the culture is valid for formatting
394         (ie, (!neutral || invariant)).
395
396 2005-06-07  Sebastien Pouliot  <sebastien@ximian.com> 
397
398         * Thread.cs: Added _Thread interface (and members) and a few missing
399         attributes (for both 1.1 and 2.0).
400
401 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
402
403         * Thread.cs Mutex.cs Monitor.cs: Add some missing 2.0 attributes.
404
405 2005-05-29  Sebastien Pouliot  <sebastien@ximian.com> 
406
407         * Timer.cs: Added new constructor for 2.0 and ComVisible attribute.
408         * Timeout.cs: This is a static class in 2.0 and ComVisible attribute.
409
410 2005-05-26  Ben Maurer  <bmaurer@ximian.com>
411
412         * Thread.cs: Use a static object for a lock rather than
413         typeof(Thread).
414
415 2005-05-26  Sebastien Pouliot  <sebastien@ximian.com> 
416  
417         * SynchronizationContext.cs: Re-introduced SendOrPost method as it's 
418         being used in System.Web.Services.
419
420 2005-05-26  Sebastien Pouliot  <sebastien@ximian.com>
421
422         * SynchronizationContext.cs: Updated to beta2 API so it doesn't depend
423         on the switcher structure anymore (which will be removed from the 
424         build).
425
426 2005-05-24  Sebastien Pouliot  <sebastien@ximian.com>
427
428         * Thread.cs: Removed #pragma which aren't supported by CSC 7.x.
429
430 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
431
432         * AsyncFlowControl.cs: Now available, as internal, in NET_1_1. This is
433         required to get some methods from SecurityContext and ExecutionContext
434         working.
435         * CompressedStack.cs: Now includes the current CompressedStack in a new
436         Capture.
437         * ExecutionContext.cs: Includes more methods in NET_1_1 to enable 
438         ThreadPool.UnsafeQueueUserWorkItem to work properly (i.e. without
439         stack propagation).
440         * Thread.cs: Made ExecutionContext field accessible from the runtime.
441         Added stack propagation when Thread.Start is called.
442         * ThreadPool.cs: QueueUserWorkItem now does stack propagation (done in
443         the runtime), so I "fixed" UnsafeQueueUserWorkItem not to do so.
444
445 2005-05-19  Miguel de Icaza  <miguel@novell.com>
446
447         * Thread.cs: REmove warnings.
448
449 2005-05-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
450
451         * Thread.cs: first check for null, then set in_currentculture.
452
453 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
454
455         * Thread.cs: Moved all checks done inside sync_lock to unmanaged code.
456         Merged Thread_internal and Start_internal into a single icall, which
457         does all work.
458
459 2005-05-11  Sebastien Pouliot  <sebastien@ximian.com> 
460
461         * CompressedStack.cs: Allow merging of an existing CompressedStack
462         with the actual stack of the current Thread.
463         * Thread.cs: GetCompressedStack and SetCompressedStack are public 
464         before 2.0 but couldn't be seen with mono-api-info because of it's 
465         LinkDemand for the ECMA public key. Removed unused CompressedStack
466         private field (now part of the ExecutionContext).
467
468 2005-05-09  Sebastien Pouliot  <sebastien@ximian.com> 
469
470         * CompressedStack.cs: GetCompressedStack is public before 2.0 but 
471         couldn't be seen with mono-api-info because of it's LinkDemand for
472         the ECMA public key. Stack capture occurs here if none exists on the
473         current thread.
474
475 2005-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
476
477         * ReaderWriterLock.cs: fix random ApplicationException errors. Tested
478         with the System.Web.Cache stress program. Patch by Eyal Alayuf
479         (Mainsoft). Fixes 74598.
480
481 2005-04-28  Sebastien Pouliot  <sebastien@ximian.com>
482
483         * Thread.cs: Added property to get the ExecutionContext in 2.0. Fixed
484         GetCompressedStack and made SetCompressedStack available (as internal)
485         before NET_2_0.
486
487 2005-04-28  Sebastien Pouliot  <sebastien@ximian.com> 
488  
489         * AsyncFlowControl.cs: Updated wrt beta2.
490         * ExecutionContext.cs: Updated wrt beta2. Class is now internal in 
491         NET_1_1 to allow the compressed stack propagation to other threads.
492         * CompressedStack.cs: Updated wrt beta2. Class is internal in NET_1_1 
493         to allow the compressed stack propagation to other threads.
494         * ContextCallback.cs: Updated wrt beta2.
495         * HostExecutionContext.cs: Updated wrt beta2.
496         * HostExecutionContextManager.cs: Updated wrt beta2.
497         * Thread.cs: Added internal property to get the ExecutionContext.
498
499 2005-04-19  Zoltan Varga  <vargaz@freemail.hu>
500
501         * Thread.cs: Add some unused fields.
502
503 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
504
505         * ThreadPool.cs: BindHandle does nothing now.
506
507 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
508
509         * Thread.cs: clear the Unstarted bit before calling Start_internal.
510         Fixes bug #72738.
511
512 2005-04-04  Ben Maurer  <bmaurer@ximian.com>
513
514         * Thread.cs: Do argument checking for Current[UI]Culture to make
515         the exception more clear for a null value being set.
516
517 2005-03-24  Sebastien Pouliot  <sebastien@ximian.com>
518
519         * CompressedStack.cs: Added LinkDemand for UnmanagedCode and ECMA 
520         public key on GetCompressedStack method.
521         * Mutex: Added LinkDemand for UnmanagedCode to create named (system 
522         wide) mutexes.
523         * Thread.cs: Added LinkDemand for ECMA public key on [Get|Set]
524         CompressedStack methods.
525         * WaitHandle.cs: Added LinkDemand and InheritanceDemand for 
526         UnmanagedCode on set Handle property.
527
528 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
529
530         * Thread.cs: Make slothash a ThreadStatic field. Fixes #65414.
531
532 2005-02-21  Zoltan Varga  <vargaz@freemail.hu>
533
534         * Monitor.cs Interlocked.cs: Add net 2.0 ReliabilityContractAttributes.
535
536 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
537
538         * Interlocked.cs: Applied patch from Luca Barbieri (luca.barbieri@gmail.com). Add NET 2.0 methods.
539
540 Tue Feb 15 18:19:11 CET 2005 Paolo Molaro <lupus@ximian.com>
541
542         * Thread.cs: make the slothash a field in MonoThread.
543
544 2005-01-27  Sebastien Pouliot  <sebastien@ximian.com>
545
546         * Overlapped.cs: Added check for ControlPolicy and ControlEvidence for
547         Unsafe pack. Added MonoTODO for missing security stack propagation.
548         * Thread.cs: Add security checks for ControlThread.
549         * ThreadPool.cs: Added declarative security checks.
550
551 Thu Jan 13 18:15:32 CET 2005 Paolo Molaro <lupus@ximian.com>
552
553         * Thread.cs: implement stacksize and parameterized
554         start functionality (requires matching runtime).
555
556 2005-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
557
558         * ThreadAbortException.cs: added private serialization .ctor.
559
560 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
561
562         * CompressedStack.cs: Implemented most todo so it's usable for CAS.
563         * CompressedStackSwitcher.cs: Implemented most todo.
564         * Thread.cs: Implement support for getting/setting CompressedStack.
565
566 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
567
568         * Thread.cs: Change type of culture_info and ui_culture_info to 
569         IntPtr. Implement correct culture handling for the UI culture as
570         well.
571
572 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
573
574         * Thread.cs: Optimize CurrentCulture to avoid initializing the
575         serialization infrastructure in the common case when the culture is
576         not set explicitly.
577
578 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
579
580         * Thread.cs: Add new fields 'serialized_culture_info{_len}'.
581         
582         * Thread.cs (CurrentCulture): Fix leaking of culture info objects 
583         across appdomains. Partially fixes #50049.
584
585 2004-12-05  Miguel de Icaza  <miguel@ximian.com>
586
587         * AutoResetEvent.cs (Set, Reset): If we are disposed, throw a
588         ObjectDisposedEvent, helped track the WebConnection destructor
589         issue. 
590
591 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
592
593         * Timer.cs: don't invoke the callback twice when the timer changes.
594         Fixes bug #66116.
595
596 2004-09-08  Marek Safar  <marek.safar@seznam.cz>
597
598         * Interlocked.cs: Class is static in NET_2_0.
599
600 2004-09-04  Sebastien Pouliot  <sebastien@ximian.com>
601
602         * Thread.cs: Changed an imperative security demand to declarative
603         (unsupported) so it doesn't (for now) call the security runtime.
604
605 2004-08-20  Sebastien Pouliot  <sebastien@ximian.com>
606
607         * Thread.cs: Added Fx 2.0 properties/methods/attributes.
608
609 2004-08-12  Sebastien Pouliot  <sebastien@ximian.com>
610
611         * CompressedStackSwitcher.cs: Added missing [ComVisible] and 
612         [ReliabilityContract] attributes.
613         * ExecutionContext.cs: Added missing [ComVisible] and 
614         [Serializable] attributes.
615         * HostExecutionContext.cs: Added missing [ComVisible] attribute.
616         * HostExecutionContextManager.cs: Added missing [ComVisible] and 
617         [ReliabilityContract] attributes.
618         * HostExecutionContextSwitcher.cs: Added missing Equals and 
619         GetHashCode methods and [ComVisible] and [ReliabilityContract] attrs.
620         * ParameterizedThreadStart.cs: New delegate in NET_2_0.
621         * SendOrPostCallback.cs: Added missing [ComVisible] attribute.
622         * SynchronizationContext.cs: Added new (2.0 beta1) methods Copy and
623         WaitHelper. Added missing [ComVisible] and [ReliabilityContract] attrs.
624         * SynchronizationContextSwitcher.cs: Added missing [ComVisible] and 
625         [ReliabilityContract] attributes.
626
627 2004-08-08  Sebastien Pouliot  <sebastien@ximian.com>
628
629         * HostExecutionContext.cs: Fx 2.0 stub required for AppDomain.
630         * HostExecutionContextManager.cs: Fx 2.0 stub required for AppDomain.
631         * HostExecutionContextSwitcher.cs: Fx 2.0 stub required for AppDomain.
632
633 2004-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
634
635         * Timer.cs: don't invoke the callback if the period changes before the
636         due time. Fixes bug #62421.
637
638 2004-07-27  Lluis Sanchez Gual  <lluis@novell.com>
639
640         * ExecutionContext.cs, ExecutionContextSwitcher.cs, 
641           SynchronizationContext.cs, SynchronizationContextSwitcher.cs: Added
642           2.0 stubs.
643
644 2004-07-15  Dick Porter  <dick@ximian.com>
645
646         * Thread.cs: Hold a lock in GetNamedDataSlot.  Fixes bug 61582,
647         based on patch by Sbastien Robitaille
648         (sebastien.robitaille@croesus.com).  Also fix instances of
649         lock(typeof(Thread)) to lock a private object instead.
650
651 2004-07-14  Sebastien Pouliot  <sebastien@ximian.com>
652
653         * AsyncFlowControl.cs: New structure in Fx 2.0 required in 
654         System.Security namespace.
655         * CompressedStackSwitcher.cs: New structure in Fx 2.0 required in 
656         System.Security namespace.
657         * ContextCallback.cs: New delegate in Fx 2.0 required in 
658         System.Security namespace.
659         * CompressedStack.cs: Updated API for NET_2_0 profile.
660
661 2004-07-10  Lluis Sanchez Gual  <lluis@ximian.com>
662
663         * SendOrPostCallback.cs: New delegate.
664
665 2004-06-24  Dick Porter  <dick@ximian.com>
666
667         * Mutex.cs: Implement the createdNew parameter
668
669 2004-06-15  Gert Driesen <drieseng@users.sourceforge.net>
670
671         * Thread.cs: changed return type of VolatileRead to UIntPtr
672         * ThreadPool.cs: set return type of SetMinThreads to bool
673
674 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
675
676         * Thread.cs: Added new fields to keep sync with MonoThread.
677           Removed state changes in Sleep and Join. The state change is now done
678           in the icall. For accessing to internal fields lock with synch_lock
679           instead of this, which can be a source of deadlocks.
680
681 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
682
683         * Timer.cs: Don't abort the thread if Dispose() is called from the runner
684           thread.
685
686 2004-06-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
687
688         * Thread.cs:
689         (CurrentPrincipal): lock on CurrentThread, not typeof (Thread) and set
690         the thread IPrincipal if we get it from the AppDomain.
691
692 2004-06-09  Gert Driesen <drieseng@users.sourceforge.net>
693
694         * CompressedStack.cs: Added finalizer to match public API of
695         MS.NET
696
697 2004-05-19  Lluis Sanchez Gual <lluis@ximian.com>
698
699         * Thread.cs: Some fixes in Abort. Implemented Suspend and Resume.
700           Added internal interruption_requested field.
701
702 2004-05-13  Sebastien Pouliot  <sebastien@ximian.com>
703
704         * CompressedStack.cs: Added an internal constructor so a default one
705         doesn't appear with corcompare.
706         * Thread.cs: Added missing MemoryBarrier (only for 1.1) and SpinWait to please
707         corcompare. Both throw a NotImplementedException.
708         * ThreadPool.cs: Added missing UnsafeRegisterWaitForSingleObject methods (4
709         overloads) to please corcompare. All throw a NotImplementedException.
710
711 2004-05-12  Zoltan Varga  <vargaz@freemail.hu>
712
713         * CompressedStack.cs: New file.
714
715 2004-04-15  Lluis Sanchez Gual <lluis@ximian.com>
716
717         * ThreadPool.cs: Added GetMinThreads and SetMinThreads.
718         * Timer.cs: In Change, return false if the timer has been disposed.
719         In Dispose, notify the WaitHandle.
720
721 2004-04-11  Lluis Sanchez Gual <lluis@ximian.com>
722
723         * ReaderWriterLock.cs: More fixes: never wait where acquiring a reader lock
724           if the thread already has the lock. Added readyWaitingReaders variable to
725           keep track of threads ready to get the reader lock.
726
727 2004-04-11  Lluis Sanchez Gual <lluis@ximian.com>
728
729         * LockQueue.cs: Moved lockCount change inside the rwlock lock. Removed
730           lock(this) when entering the rwlock to avoid a deadlock.
731         * ReaderWriterLock.cs: In AcquireWriterLock, queue the thread if the queue
732           is not empty (even if state==0).
733
734 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
735
736         * Timer.cs: Call the callback immediately if dueTime is 0. Fixes
737         #56728.
738
739 2004-04-08  Jackson Harper  <jackson@ximian.com>
740
741         * ReaderWriterLock.cs: Fix tyop
742         
743 2004-04-08  Lluis Sanchez Gual <lluis@ximian.com>
744
745         * ReaderWriterLock.cs: Changed some methods to private.
746         * WaitHandle.cs: In Wait methods, release the synchronization context when 
747           exitContext is true.
748
749 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
750
751         * Timer.cs: call Abort on the Runner instance too.
752
753 2004-04-07  Jackson Harper  <jackson@ximian.com>
754
755         * Thread.cs: Use new culture info method for constructing the
756         current culture.
757         
758 2004-04-07  Lluis Sanchez Gual <lluis@ximian.com>
759
760         * ReaderWriterLock.cs: When a thread holds a writer lock, a call to
761           AcquireReaderLock works like a call to AcquireWriterLock.
762
763 2004-04-06  Lluis Sanchez Gual <lluis@ximian.com>
764
765         * Monitor.cs: In Wait(), release the synchronization context when 
766           exitContext is true.
767
768 2004-04-06  Lluis Sanchez Gual <lluis@ximian.com>
769
770         * LockCookie.cs: Keep in this class the count of reader or writer locks
771           for a thread, not only whether it has locks or not.
772         * LockQueue.cs: Added property for checking if a thread is waiting in
773           the queue. Wait now returns a boolean that set to false on timeout 
774           expiration.
775         * ReaderWriterLock.cs: Started fixing bugs but I had to rewrite a lot of it.
776           The main change is that now it keeps a reader lock count for each
777           thread. This is needed since methods like ReleaseLock or 
778           UpgradeToWriterLock need to return a per-thread status in LockCookie.
779           Also added support for recursive writer-lock requests.
780
781 2004-03-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
782
783         * ThreadAbortException.cs: use same HResult as MS.
784         * Timer.cs: abort the running thread when disposing the Timer. This
785         fixes NullRefs when finishing xsp.
786
787 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
788
789         * NativeOverlapped.cs: added 2 new internal fields.
790         * Overlapped.cs: implemented, but it's not used.
791
792         * ThreadPool.cs: implemented BindHandle.
793
794 2004-03-08  Zoltan Varga  <vargaz@freemail.hu>
795
796         * Timer.cs (Dispose): Applied patch from Jaroslaw Kowalski 
797         (jaak@zd.com.pl). Fix finalization problems during appdomain unload.
798
799 2004-02-23  Jackson Harper <jackson@ximian.com>
800
801         * LockCookie.cs: Add some fields for restoring locks.
802         * ReaderWriterLock.cs: Implement
803         * LockQueue.cs: New File - used for queueing thread locks in
804         ReaderWriterLock.
805         
806 2004-02-19  Jackson Harper <jackson@ximian.com>
807
808         * Monitor.cs: Fix spelleng.
809         
810 2004-02-09  Zoltan Varga  <vargaz@freemail.hu>
811
812         * Thread.cs: Add fields added to unmanaged MonoThread here as well.
813         Fixes random errors caused by memory corruption.
814
815 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
816
817         * Thread.cs: Store the thread name in unmanaged memory, since the
818         thread object is shared between appdomains.
819
820 2004-02-05  Sebastien Pouliot  <sebastien@ximian.com>
821
822         * Thread.cs: Implemented CurrentPrincipal.
823
824 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
825
826         * Thread.cs: delayed thread creation until Start is called. If we
827         don't do that and Start() is not called, the thread is leaked. First
828         step towards fixing bug #53078. 
829
830 2003-12-02  Dick Porter  <dick@ximian.com>
831
832         * Thread.cs: Throw InvalidOperationException if Thread.Name is
833         already set.
834
835 2003-12-01  Dick Porter  <dick@ximian.com>
836
837         * Thread.cs: Implement CurrentCulture and CurrentUICulture
838
839 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
840
841         * Thread.cs: Add new VolatileRead/VolatileWrite methods from 1.1
842
843 2003-10-23  Lluis Sanchez Gual  <lluis@ximian.com>
844
845         * Thread.cs: Added ResetDataStoreStatus and RestoreDataStoreStatus
846           methods. They are used in CrossAppDomainChannel to save and restore
847           thread's local data when switching between domains.
848
849 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
850
851         * ManualResetEvent.cs: added check for disposed.
852         * Thread.cs: no need to init this field.
853
854 2003-10-01  Zoltan Varga  <vargaz@freemail.hu>
855
856         * Thread.cs: Add locking to AllocateNamedDataSlot and 
857         FreeNamedDataSlot.
858
859 Wed Aug 20 12:01:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
860
861         * Thread.cs: put all the fields at the start and add
862         more fields needed by the runtime.
863
864 2003-08-14  Lluis Sanchez Gual  <lluis@ximian.com>
865
866         * Thread.cs: SetData() method: use Hashtable.Contains to check
867           if a dataslot has been allocated (value could be null).
868
869 2003-07-23  Duncan Mak  <duncan@ximian.com>
870
871         * WaitHandle.cs (CheckDisposed): This method is not in the public
872         API, mark it as 'internal'.
873
874 2003-07-01  Dick Porter  <dick@ximian.com>
875
876         * Thread.cs: Throw an exception if thread creation failed.
877         (Better than just blowing up later.)
878
879 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
880
881         * ThreadPool.cs: use async delegate invoke.
882
883 2003-06-25  Dick Porter  <dick@ximian.com>
884
885         * WaitHandle.cs: Default handle value should be InvalidHandle, not
886         Zero.
887
888 2003-06-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
889
890         * ThreadPool.cs: correctly create a TimeSpan with provided the number of
891         milliseconds.
892
893         * WaitHandle.cs: fixes for WaitAny/All and TimeSpan.
894
895 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
896
897         * WaitHandle.cs: checks and exceptions.
898
899 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
900
901         * NativeEventCalls.cs: added CloseEvent_intenal.
902         * WaitHandle.cs: call CloseEvent_internal when disposing.
903
904 2003-05-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
905
906         * RegisteredWaitHandle.cs: check that the callback is not null before
907         invoking.
908
909         * ThreadPool.cs: fixed timeout -> TimeSpan conversions (closes bug
910         #43963). Queue the item before setting the handle. If there's a timeout,
911         avoid trying to Dequeue, getting the exception et al, just continue the
912         loop.
913
914 Mon May 19 09:07:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
915
916         * Monitor.cs: removed test_owner, the check is already done in the
917         icall.
918
919 Tue May 13 15:34:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
920
921         * Thread.cs: added missing field used by the runtime and
922         a new field to support thread-static data.
923
924 2003-04-17  Pedro Mart?ez Juli? <yoros@wanadoo.es>
925
926         * Timer.cs: Change the position of two lines because they were
927         before the "if" that ensures the integrity. After this, the first of
928         that two lines was producing a NullReferenceException.
929
930 2003-04-09  Dick Porter  <dick@ximian.com>
931
932         * Thread.cs: Make sure a reference to the ThreadStart delegate is
933         held.  There's no telling how long it will be before
934         Thread.Start() is called, and GC might destroy the delegate.
935         Thread() and Start() need to be rewritten so that the runtime
936         creates the new thread when Start() is called, which will simplify
937         the code a great deal.
938
939 2003-03-20  Miguel de Icaza  <miguel@ximian.com>
940
941         * Thread.cs (CurrentCuluture): use the invaraint culture instead
942         of "" for the current_culture setting.
943
944 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
945
946         * Thread.cs: Fix visibility of ResetAbort().
947
948 2003-03-18  Dick Porter  <dick@ximian.com>
949
950         * Thread.cs: Keep the thread state updated in all the places that
951         require it.  (Suspend, Resume and Interrupt not handled yet)
952
953 2003-03-03  Lluis Sanchez Gual <lluis@ideary.com>
954
955         * Thread.cs: Changed implementation of CurrentContext, adapted to the changes
956           in the runtime.
957
958 2003-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
959
960         * Thread.cs: implemented CurrentContext.
961
962 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
963
964         * Thread.cs: made the thread_id for the current thread accesible through
965         an internal property.  
966
967 2003-02-17  Dick Porter  <dick@ximian.com>
968
969         * Thread.cs: Added the Start semaphore field to the class.  Update
970         the thread state after Start() has returned, not before.
971
972 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
973
974         * Thread.cs (Sleep): Timeout.Infinite is a value argument.
975
976 2003-02-11  Dick Porter  <dick@ximian.com>
977
978         * Monitor.cs: Infinite wait is Infinite, not 0 ms
979
980 2003-02-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
981
982         * Thread.cs: fixed bug #37759.
983
984 2003-02-07  Patrik Torstensson
985
986         * Timer.cs: Set the Background thread flag for the timer thread
987
988 2003-02-05  Patrik Torstensson
989
990         * ThreadPool.cs: Reformated and fixed issue that made all thread exit the pool. 
991
992 2003-02-04  Lluis Sanchez Gual <lluis@ideary.com>
993
994         * ThreadPool.cs: Implemented RegisterWaitForSingleObject methods.
995
996 Tue Jan 28 17:55:59 CET 2003 Paolo Molaro <lupus@ximian.com>
997
998         * Thread.cs: delay-init datastorehash.
999
1000 2003-01-10  Patrik Torstensson  <totte@race-x-change.com>
1001
1002         * ThreadPool.cs: Temporary removed the usage of monitor thread, implemented a 
1003                     model more equal to the MS one.
1004
1005 2002-12-10  Dick Porter  <dick@ximian.com>
1006
1007         * Monitor.cs:
1008         * Thread.cs:
1009         * ThreadPool.cs:
1010         * Timer.cs:
1011         * WaitHandle.cs: Use TotalMilliseconds to convert a TimeSpan to
1012         ms, not Milliseconds.
1013
1014 2002-12-07  Martin Baulig  <martin@ximian.com>
1015
1016         * Timer.cs: Make it actually work; now it no longer sets your
1017         application on fire if you use a zero periode and Timer.Change()
1018         actually works.
1019
1020 2002-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1021
1022         * Timer.cs: implemented more stuff. It works now.
1023
1024 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
1025
1026         * Thread.cs: Implement GetDomain() and GetDomainID().
1027
1028 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1029
1030         * ThreadPool.cs: now the monitor thread is not sleeping and checking if
1031         more worker threads needed. It waits on _DataInQueue. If (and only if)
1032         there's data in the queue it checks if more worker threads needed and
1033         then sleeps 0.5s before waiting for queued data again.
1034
1035 2002-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1036
1037         * ThreadPool.cs: set IsThreadPoolThread before starting the worker.
1038
1039 2002-09-11  Dick Porter  <dick@ximian.com>
1040
1041         * Mutex.cs: 
1042         * ManualResetEvent.cs: 
1043         * AutoResetEvent.cs: Use the WaitHandle.Handle property instead of
1044         the private field
1045
1046         * WaitHandle.cs: Hide the os_handle field and the WaitOne_internal
1047         method
1048
1049 2002-09-03  Dick Porter  <dick@ximian.com>
1050
1051         * Thread.cs: Added thread ID field
1052
1053 2002-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1054
1055         * WaitHandle.cs: IDisposable fixes.
1056
1057 2002-08-14  Dick Porter  <dick@ximian.com>
1058
1059         * Thread.cs: Make CurrentUICulture act the same as CurrentCulture
1060         for now.
1061
1062 2002-08-12  Dietmar Maurer  <dietmar@ximian.com>
1063
1064         * ThreadAbortException.cs: impl. ExceptionState property.
1065
1066         * Thread.cs: moved all instance variables to the start of the
1067         class. added support for Thread::Abort()
1068
1069 2002-04-30  Dick Porter  <dick@ximian.com>
1070
1071         * Thread.cs: If LocalDataStoreSlot already has data set, remove it
1072         before adding a new one.
1073
1074         Use the Thread object destructor to tell the runtime to close the
1075         thread handle.
1076
1077 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
1078
1079         * Interlocked.cs: made all methods icalls.
1080
1081 2002-04-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1082
1083         * IOCompletionCallback.cs: added attributes to the delegate
1084         (CLSCompliant(false) and Serializable).
1085
1086 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
1087         * Thread.cs: Fixed IsThreadPoolThread to use a internal property instead of extending 
1088                                  the threadstate enum.
1089         * ThreadPool.cs: Now using the internal Isthreadpoolthread property
1090         * ThreadState.cs: removed non-standard enum (ThreadPoolThread)
1091
1092 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
1093
1094         * ThreadState.cs: Added enum for threadpool thread
1095         * Thread.cs: changed the set/clr_state to be internal (used from threadpool)
1096         * Thread.cs: Added IsThreadPoolThread
1097         * ThreadPool.cs: Implementation of QueueUserWorkItem
1098
1099 Wed Feb 13 21:51:30 CET 2002 Paolo Molaro <lupus@ximian.com>
1100
1101         * Thread.cs: implement CurrentCulture property needed by
1102         Convert.ChangeType() (used when compiling enums).
1103
1104 2002-01-23  Dick Porter  <dick@ximian.com>
1105
1106         * ManualResetEvent.cs: 
1107         * AutoResetEvent.cs: Fixed DOS line endings
1108
1109 2002-01-22  Veronica De Santis <veron78@interfree.it>   
1110         
1111         * NativeEventCalls : Class that contains internal calls shared by Auto 
1112                              and Manual Reset Events
1113         * AutoResetEvents.cs : Added class AutoResetEvents and its implementation
1114         * ManualResetEvents.cs : Added class ManualResetEvents and its implementation
1115
1116 2002-01-16  Veronica De Santis <veron78@interfree.it>   
1117         
1118         * WaitHandle.cs : Renamed handle to os_handle and make it protected
1119                           instead of private.
1120         * Mutex.cs : Write the System.Threading.Mutex methods ( constructors 
1121                      and the ReleaseMutex)
1122
1123 2002-01-15  Dick Porter  <dick@ximian.com>
1124
1125         * WaitHandle.cs:
1126         * Thread.cs: Make the runtime's idea of infinite timeouts coincide
1127         with the class library's
1128
1129 2002-01-10  Dick Porter  <dick@ximian.com>
1130
1131         * WaitHandle.cs: Added checks for too many handles and null
1132         handles in WaitAll() and WaitAny
1133         
1134
1135 2002-01-05  Ravi Pratap  <ravi@ximian.com>
1136
1137         * AutoResetEvent.cs, ManualResetEvent.cs, Monitor.cs : MonoTODO
1138         decoration.
1139
1140         * Mutex.cs, Overlapped.cs, ReaderWriterLock.cs, RegisteredWaitHandle.cs,
1141         Thread.cs, ThreadAbortException.cs, ThreadPool.cs, Timer.cs, WaitHandler.cs : Ditto.
1142
1143 2001-12-11  Dick Porter  <dick@ximian.com>
1144
1145         * WaitHandle.cs: Implemented WaitAll(), WaitAny() and WaitOne() as
1146         internal calls.
1147
1148 2001-11-26  Dick Porter  <dick@ximian.com>
1149
1150         * Thread.cs: DataSlot uses a single system TLS slot, and a
1151         hashtable per thread.  Some minor changes to reflect the new
1152         internal calls using the new IO library, and the newly-supported
1153         bool returns from internal calls.
1154
1155         * Monitor.cs: Use bool returns from internal calls now they are
1156         supported by the runtime.  Coalesce enter with the try_enter
1157         internal call.
1158
1159 Wed Nov 14 17:06:18 CET 2001 Paolo Molaro <lupus@ximian.com>
1160
1161         * Overlapped.cs, ThreadPool.cs, Timer.cs: CLSCompliant updates.
1162
1163 2001-10-03  Dick Porter  <dick@ximian.com>
1164
1165         * Monitor.cs: Implemented all methods except the two Wait()
1166         methods that take boolean parameters
1167
1168 2001-09-28  Dick Porter  <dick@ximian.com>
1169
1170         * Thread.cs: Implemented AllocateDataSlot(),
1171         AllocateNamedDataSlot(), FreeNamedDataSlot(), GetData(),
1172         GetNamedDataSlot(), SetData(), IsBackground.  Reworked Thread()
1173         and Start() to avoid a race condition. Added thread-safe state
1174         changing private operations.
1175
1176         * Monitor.cs: Comment out the GetType() calls because it isn't implemented yet
1177
1178 2001-09-25  Dick Porter  <dick@ximian.com>
1179
1180         * Thread.cs: Implement Join and timed Join, set correct state
1181         around Start, Join and Sleep calls, implement IsAlive and
1182         ThreadState properties.
1183
1184         * ThreadState.cs (Threading): Added StopRequested,
1185         SuspendRequested, Suspended values
1186
1187 2001-09-23  Dick Porter  <dick@ximian.com>
1188
1189         * Thread.cs: Implemented CurrentThread and Sleep (both versions)
1190         with internal calls, and Name.
1191
1192 2001-09-21  Dick Porter  <dick@ximian.com>
1193
1194         * Thread.cs: Implement Thread(ThreadStart) constructor and Start()
1195         with an internal call
1196
1197         * WaitHandle.cs: Close calls Dispose(false)
1198
1199 2001-09-13  Dick Porter  <dick@ximian.com>
1200
1201         * ApartmentState.cs (Threading): Set the correct enum values
1202
1203 2001-09-13  Dick Porter  <dick@ximian.com>
1204
1205         * ApartmentState.cs, AutoResetEvent.cs, IOCompletionCallback.cs,
1206         Interlocked.cs, LockCookie.cs, ManualResetEvent.cs, Monitor.cs,
1207         Mutex.cs, NativeOverlapped.cs, Overlapped.cs, ReaderWriterLock.cs,
1208         RegisteredWaitHandle.cs, SynchronizationLockException.cs,
1209         Thread.cs, ThreadAbortException.cs, ThreadInterruptedException.cs,
1210         ThreadPool.cs, ThreadStart.cs, ThreadStateException.cs,
1211         Timeout.cs, Timer.cs, TimerCallback.cs, WaitCallback.cs,
1212         WaitHandle.cs, WaitOrTimerCallback.cs: System.Threading class
1213         stubs.
1214         
1215 2001-07-18  Michael Lambert <michaellambert@email.com>
1216
1217         * ThreadPriority.cs, ThreadState.cs: Add.