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