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