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