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