1 2006-11-07 Robert Jordan <robertj@gmx.net>
3 * WaitHandle.cs: Don't assume Assembly.GetEntryAssembly () != null.
6 2006-11-02 Dick Porter <dick@ximian.com>
8 * Thread.cs: Use the new Interrupt and SpinWait icalls.
10 2006-07-04 Atsushi Enomoto <atsushi@ximian.com>
12 * WaitHandle.cs : CheckArray() is also used in WaitAny(), so added
13 extra argument to skip STAThread check.
15 2006-06-30 Duncan Mak <duncan@novell.com>
17 * WaitHandle.cs (CheckArray): Avoid using reflection unless we
20 2006-06-29 Duncan Mak <duncan@novell.com>
22 * WaitHandle.cs (CheckArray): Throw NotSupportedException if the
23 current thread is marked with the STAThreadAttribute. Fixes bug
26 2006-05-05 Sebastien Pouliot <sebastien@ximian.com>
28 * ExecutionContext.cs: Don't capture the compressed stack unless the
29 security manager is active (this wasn't ready to be called in
32 2004-04-29 Atsushi Enomoto <atsushi@ximian.com>
34 * Timer.cs : avoid NullReferenceException when it is already disposed.
35 Patch by pawel.sakowski@mind-breeze.com. Fixed bug #78208.
37 2004-04-28 Atsushi Enomoto <atsushi@ximian.com>
39 * SynchronizationContext.cs : use ThreadPool in Post(), as suggested
42 2004-04-04 Atsushi Enomoto <atsushi@ximian.com>
44 * Thread.cs : base class is CriticalFinalizerObject.
45 * ThreadStartException.cs : no public constructors.
47 Wed Mar 29 18:29:55 CEST 2006 Paolo Molaro <lupus@ximian.com>
49 * Thread.cs: update for the runtime changes to culture caching.
51 Wed Mar 15 16:35:49 CET 2006 Paolo Molaro <lupus@ximian.com>
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.
57 2006-02-09 Miguel de Icaza <miguel@novell.com>
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.
63 Removed also a LAMESPEC for missing argument checking in Wait with
66 Fixed the use of exceptions.
68 2005-12-23 Dick Porter <dick@ximian.com>
71 * Mutex.cs: Implement OpenExisting
73 * NativeEventCalls.cs: Add OpenEvent icall for OpenExisting in
74 2.0. Add a "created" boolean out parameter to CreateEvent icall.
76 * ManualResetEvent.cs:
77 * AutoResetEvent.cs: Update CreateEvent icall signature (now has
78 "created" boolean out parameter.)
80 2005-12-17 Dick Porter <dick@ximian.com>
82 * ThreadStartException.cs:
85 * AbandonedMutexException.cs: New for 2.0 profile
89 * RegisteredWaitHandle.cs:
93 * ManualResetEvent.cs:
94 * AutoResetEvent.cs: Updated for 2.0 profile
96 2005-11-23 Zoltan Varga <vargaz@gmail.com>
98 * Interlocked.cs: Add T:class constraint to the generic
99 CompareExchange and Exchange methods.
101 2005-11-17 Zoltan Varga <vargaz@gmail.com>
103 * Interlocked.cs: Add generic CompareExchange and Exchange methods.
105 2005-11-17 Sebastien Pouliot <sebastien@ximian.com>
107 * WaitHandleCannotBeOpenedException.cs: New (2.0). Is required to
108 compile the Semaphore tests (in System.dll).
110 2005-10-23 Marek Safar <marek.safar@seznam.cz>
112 * SynchronizationContext.cs: A few simple fixes.
114 2005-10-06 Sebastien Pouliot <sebastien@ximian.com>
116 * Thread.cs: Copy an existing IPrincipal to new threads. Fix bug
119 2005-10-06 Sebastien Pouliot <sebastien@ximian.com>
121 * Thread.cs: Added new attributes, [ReliabilityContract] for
122 destructor and [Obsolete] for [Get|Set]CompressedStack, that were
125 2005-09-11 Zoltan Varga <vargaz@gmail.com>
127 * Thread.cs (MemoryBarrier): Make this an icall.
129 2005-09-10 Zoltan Varga <vargaz@gmail.com>
131 * Thread.cs (Interrupt): Make this throw a NotImplementedException.
133 2005-09-09 Martin Baulig <martin@ximian.com>
135 * Timer.cs (Timer.Runner.Start): Silently catch
136 ObjectDisposedException and return; works around some race
137 condition on thread abort.
139 2005-08-19 Dick Porter <dick@ximian.com>
141 * Thread.cs: Reserve 64 bits for the thread ID.
143 2005-07-19 Martin Baulig <martin@ximian.com>
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.
149 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
151 * Thread.cs: check that the culture is valid for formatting
152 (ie, (!neutral || invariant)).
154 2005-06-07 Sebastien Pouliot <sebastien@ximian.com>
156 * Thread.cs: Added _Thread interface (and members) and a few missing
157 attributes (for both 1.1 and 2.0).
159 2005-06-06 Zoltan Varga <vargaz@freemail.hu>
161 * Thread.cs Mutex.cs Monitor.cs: Add some missing 2.0 attributes.
163 2005-05-29 Sebastien Pouliot <sebastien@ximian.com>
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.
168 2005-05-26 Ben Maurer <bmaurer@ximian.com>
170 * Thread.cs: Use a static object for a lock rather than
173 2005-05-26 Sebastien Pouliot <sebastien@ximian.com>
175 * SynchronizationContext.cs: Re-introduced SendOrPost method as it's
176 being used in System.Web.Services.
178 2005-05-26 Sebastien Pouliot <sebastien@ximian.com>
180 * SynchronizationContext.cs: Updated to beta2 API so it doesn't depend
181 on the switcher structure anymore (which will be removed from the
184 2005-05-24 Sebastien Pouliot <sebastien@ximian.com>
186 * Thread.cs: Removed #pragma which aren't supported by CSC 7.x.
188 2005-05-20 Sebastien Pouliot <sebastien@ximian.com>
190 * AsyncFlowControl.cs: Now available, as internal, in NET_1_1. This is
191 required to get some methods from SecurityContext and ExecutionContext
193 * CompressedStack.cs: Now includes the current CompressedStack in a new
195 * ExecutionContext.cs: Includes more methods in NET_1_1 to enable
196 ThreadPool.UnsafeQueueUserWorkItem to work properly (i.e. without
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.
203 2005-05-19 Miguel de Icaza <miguel@novell.com>
205 * Thread.cs: REmove warnings.
207 2005-05-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
209 * Thread.cs: first check for null, then set in_currentculture.
211 2005-05-12 Lluis Sanchez Gual <lluis@novell.com>
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
217 2005-05-11 Sebastien Pouliot <sebastien@ximian.com>
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).
226 2005-05-09 Sebastien Pouliot <sebastien@ximian.com>
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
233 2005-04-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
235 * ReaderWriterLock.cs: fix random ApplicationException errors. Tested
236 with the System.Web.Cache stress program. Patch by Eyal Alayuf
237 (Mainsoft). Fixes 74598.
239 2005-04-28 Sebastien Pouliot <sebastien@ximian.com>
241 * Thread.cs: Added property to get the ExecutionContext in 2.0. Fixed
242 GetCompressedStack and made SetCompressedStack available (as internal)
245 2005-04-28 Sebastien Pouliot <sebastien@ximian.com>
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.
257 2005-04-19 Zoltan Varga <vargaz@freemail.hu>
259 * Thread.cs: Add some unused fields.
261 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
263 * ThreadPool.cs: BindHandle does nothing now.
265 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
267 * Thread.cs: clear the Unstarted bit before calling Start_internal.
270 2005-04-04 Ben Maurer <bmaurer@ximian.com>
272 * Thread.cs: Do argument checking for Current[UI]Culture to make
273 the exception more clear for a null value being set.
275 2005-03-24 Sebastien Pouliot <sebastien@ximian.com>
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
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.
286 2005-03-10 Zoltan Varga <vargaz@freemail.hu>
288 * Thread.cs: Make slothash a ThreadStatic field. Fixes #65414.
290 2005-02-21 Zoltan Varga <vargaz@freemail.hu>
292 * Monitor.cs Interlocked.cs: Add net 2.0 ReliabilityContractAttributes.
294 2005-02-20 Zoltan Varga <vargaz@freemail.hu>
296 * Interlocked.cs: Applied patch from Luca Barbieri (luca.barbieri@gmail.com). Add NET 2.0 methods.
298 Tue Feb 15 18:19:11 CET 2005 Paolo Molaro <lupus@ximian.com>
300 * Thread.cs: make the slothash a field in MonoThread.
302 2005-01-27 Sebastien Pouliot <sebastien@ximian.com>
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.
309 Thu Jan 13 18:15:32 CET 2005 Paolo Molaro <lupus@ximian.com>
311 * Thread.cs: implement stacksize and parameterized
312 start functionality (requires matching runtime).
314 2005-01-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
316 * ThreadAbortException.cs: added private serialization .ctor.
318 2004-12-20 Sebastien Pouliot <sebastien@ximian.com>
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.
324 2004-12-15 Zoltan Varga <vargaz@freemail.hu>
326 * Thread.cs: Change type of culture_info and ui_culture_info to
327 IntPtr. Implement correct culture handling for the UI culture as
330 2004-12-14 Zoltan Varga <vargaz@freemail.hu>
332 * Thread.cs: Optimize CurrentCulture to avoid initializing the
333 serialization infrastructure in the common case when the culture is
336 2004-12-06 Zoltan Varga <vargaz@freemail.hu>
338 * Thread.cs: Add new fields 'serialized_culture_info{_len}'.
340 * Thread.cs (CurrentCulture): Fix leaking of culture info objects
341 across appdomains. Partially fixes #50049.
343 2004-12-05 Miguel de Icaza <miguel@ximian.com>
345 * AutoResetEvent.cs (Set, Reset): If we are disposed, throw a
346 ObjectDisposedEvent, helped track the WebConnection destructor
349 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
351 * Timer.cs: don't invoke the callback twice when the timer changes.
354 2004-09-08 Marek Safar <marek.safar@seznam.cz>
356 * Interlocked.cs: Class is static in NET_2_0.
358 2004-09-04 Sebastien Pouliot <sebastien@ximian.com>
360 * Thread.cs: Changed an imperative security demand to declarative
361 (unsupported) so it doesn't (for now) call the security runtime.
363 2004-08-20 Sebastien Pouliot <sebastien@ximian.com>
365 * Thread.cs: Added Fx 2.0 properties/methods/attributes.
367 2004-08-12 Sebastien Pouliot <sebastien@ximian.com>
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.
385 2004-08-08 Sebastien Pouliot <sebastien@ximian.com>
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.
391 2004-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
393 * Timer.cs: don't invoke the callback if the period changes before the
394 due time. Fixes bug #62421.
396 2004-07-27 Lluis Sanchez Gual <lluis@novell.com>
398 * ExecutionContext.cs, ExecutionContextSwitcher.cs,
399 SynchronizationContext.cs, SynchronizationContextSwitcher.cs: Added
402 2004-07-15 Dick Porter <dick@ximian.com>
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.
409 2004-07-14 Sebastien Pouliot <sebastien@ximian.com>
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.
419 2004-07-10 Lluis Sanchez Gual <lluis@ximian.com>
421 * SendOrPostCallback.cs: New delegate.
423 2004-06-24 Dick Porter <dick@ximian.com>
425 * Mutex.cs: Implement the createdNew parameter
427 2004-06-15 Gert Driesen <drieseng@users.sourceforge.net>
429 * Thread.cs: changed return type of VolatileRead to UIntPtr
430 * ThreadPool.cs: set return type of SetMinThreads to bool
432 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
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.
439 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
441 * Timer.cs: Don't abort the thread if Dispose() is called from the runner
444 2004-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
447 (CurrentPrincipal): lock on CurrentThread, not typeof (Thread) and set
448 the thread IPrincipal if we get it from the AppDomain.
450 2004-06-09 Gert Driesen <drieseng@users.sourceforge.net>
452 * CompressedStack.cs: Added finalizer to match public API of
455 2004-05-19 Lluis Sanchez Gual <lluis@ximian.com>
457 * Thread.cs: Some fixes in Abort. Implemented Suspend and Resume.
458 Added internal interruption_requested field.
460 2004-05-13 Sebastien Pouliot <sebastien@ximian.com>
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.
469 2004-05-12 Zoltan Varga <vargaz@freemail.hu>
471 * CompressedStack.cs: New file.
473 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
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.
479 2004-04-11 Lluis Sanchez Gual <lluis@ximian.com>
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.
485 2004-04-11 Lluis Sanchez Gual <lluis@ximian.com>
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).
492 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
494 * Timer.cs: Call the callback immediately if dueTime is 0. Fixes
497 2004-04-08 Jackson Harper <jackson@ximian.com>
499 * ReaderWriterLock.cs: Fix tyop
501 2004-04-08 Lluis Sanchez Gual <lluis@ximian.com>
503 * ReaderWriterLock.cs: Changed some methods to private.
504 * WaitHandle.cs: In Wait methods, release the synchronization context when
507 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
509 * Timer.cs: call Abort on the Runner instance too.
511 2004-04-07 Jackson Harper <jackson@ximian.com>
513 * Thread.cs: Use new culture info method for constructing the
516 2004-04-07 Lluis Sanchez Gual <lluis@ximian.com>
518 * ReaderWriterLock.cs: When a thread holds a writer lock, a call to
519 AcquireReaderLock works like a call to AcquireWriterLock.
521 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
523 * Monitor.cs: In Wait(), release the synchronization context when
526 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
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
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.
539 2004-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
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.
545 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
547 * NativeOverlapped.cs: added 2 new internal fields.
548 * Overlapped.cs: implemented, but it's not used.
550 * ThreadPool.cs: implemented BindHandle.
552 2004-03-08 Zoltan Varga <vargaz@freemail.hu>
554 * Timer.cs (Dispose): Applied patch from Jaroslaw Kowalski
555 (jaak@zd.com.pl). Fix finalization problems during appdomain unload.
557 2004-02-23 Jackson Harper <jackson@ximian.com>
559 * LockCookie.cs: Add some fields for restoring locks.
560 * ReaderWriterLock.cs: Implement
561 * LockQueue.cs: New File - used for queueing thread locks in
564 2004-02-19 Jackson Harper <jackson@ximian.com>
566 * Monitor.cs: Fix spelleng.
568 2004-02-09 Zoltan Varga <vargaz@freemail.hu>
570 * Thread.cs: Add fields added to unmanaged MonoThread here as well.
571 Fixes random errors caused by memory corruption.
573 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
575 * Thread.cs: Store the thread name in unmanaged memory, since the
576 thread object is shared between appdomains.
578 2004-02-05 Sebastien Pouliot <sebastien@ximian.com>
580 * Thread.cs: Implemented CurrentPrincipal.
582 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
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.
588 2003-12-02 Dick Porter <dick@ximian.com>
590 * Thread.cs: Throw InvalidOperationException if Thread.Name is
593 2003-12-01 Dick Porter <dick@ximian.com>
595 * Thread.cs: Implement CurrentCulture and CurrentUICulture
597 2003-11-12 Miguel de Icaza <miguel@ximian.com>
599 * Thread.cs: Add new VolatileRead/VolatileWrite methods from 1.1
601 2003-10-23 Lluis Sanchez Gual <lluis@ximian.com>
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.
607 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
609 * ManualResetEvent.cs: added check for disposed.
610 * Thread.cs: no need to init this field.
612 2003-10-01 Zoltan Varga <vargaz@freemail.hu>
614 * Thread.cs: Add locking to AllocateNamedDataSlot and
617 Wed Aug 20 12:01:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
619 * Thread.cs: put all the fields at the start and add
620 more fields needed by the runtime.
622 2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
624 * Thread.cs: SetData() method: use Hashtable.Contains to check
625 if a dataslot has been allocated (value could be null).
627 2003-07-23 Duncan Mak <duncan@ximian.com>
629 * WaitHandle.cs (CheckDisposed): This method is not in the public
630 API, mark it as 'internal'.
632 2003-07-01 Dick Porter <dick@ximian.com>
634 * Thread.cs: Throw an exception if thread creation failed.
635 (Better than just blowing up later.)
637 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
639 * ThreadPool.cs: use async delegate invoke.
641 2003-06-25 Dick Porter <dick@ximian.com>
643 * WaitHandle.cs: Default handle value should be InvalidHandle, not
646 2003-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
648 * ThreadPool.cs: correctly create a TimeSpan with provided the number of
651 * WaitHandle.cs: fixes for WaitAny/All and TimeSpan.
653 2003-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
655 * WaitHandle.cs: checks and exceptions.
657 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
659 * NativeEventCalls.cs: added CloseEvent_intenal.
660 * WaitHandle.cs: call CloseEvent_internal when disposing.
662 2003-05-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
664 * RegisteredWaitHandle.cs: check that the callback is not null before
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
672 Mon May 19 09:07:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
674 * Monitor.cs: removed test_owner, the check is already done in the
677 Tue May 13 15:34:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
679 * Thread.cs: added missing field used by the runtime and
680 a new field to support thread-static data.
682 2003-04-17 Pedro Mart?ez Juli? <yoros@wanadoo.es>
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.
688 2003-04-09 Dick Porter <dick@ximian.com>
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.
697 2003-03-20 Miguel de Icaza <miguel@ximian.com>
699 * Thread.cs (CurrentCuluture): use the invaraint culture instead
700 of "" for the current_culture setting.
702 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
704 * Thread.cs: Fix visibility of ResetAbort().
706 2003-03-18 Dick Porter <dick@ximian.com>
708 * Thread.cs: Keep the thread state updated in all the places that
709 require it. (Suspend, Resume and Interrupt not handled yet)
711 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
713 * Thread.cs: Changed implementation of CurrentContext, adapted to the changes
716 2003-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
718 * Thread.cs: implemented CurrentContext.
720 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
722 * Thread.cs: made the thread_id for the current thread accesible through
723 an internal property.
725 2003-02-17 Dick Porter <dick@ximian.com>
727 * Thread.cs: Added the Start semaphore field to the class. Update
728 the thread state after Start() has returned, not before.
730 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
732 * Thread.cs (Sleep): Timeout.Infinite is a value argument.
734 2003-02-11 Dick Porter <dick@ximian.com>
736 * Monitor.cs: Infinite wait is Infinite, not 0 ms
738 2003-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
740 * Thread.cs: fixed bug #37759.
742 2003-02-07 Patrik Torstensson
744 * Timer.cs: Set the Background thread flag for the timer thread
746 2003-02-05 Patrik Torstensson
748 * ThreadPool.cs: Reformated and fixed issue that made all thread exit the pool.
750 2003-02-04 Lluis Sanchez Gual <lluis@ideary.com>
752 * ThreadPool.cs: Implemented RegisterWaitForSingleObject methods.
754 Tue Jan 28 17:55:59 CET 2003 Paolo Molaro <lupus@ximian.com>
756 * Thread.cs: delay-init datastorehash.
758 2003-01-10 Patrik Torstensson <totte@race-x-change.com>
760 * ThreadPool.cs: Temporary removed the usage of monitor thread, implemented a
761 model more equal to the MS one.
763 2002-12-10 Dick Porter <dick@ximian.com>
769 * WaitHandle.cs: Use TotalMilliseconds to convert a TimeSpan to
770 ms, not Milliseconds.
772 2002-12-07 Martin Baulig <martin@ximian.com>
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()
778 2002-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
780 * Timer.cs: implemented more stuff. It works now.
782 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
784 * Thread.cs: Implement GetDomain() and GetDomainID().
786 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
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.
793 2002-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
795 * ThreadPool.cs: set IsThreadPoolThread before starting the worker.
797 2002-09-11 Dick Porter <dick@ximian.com>
800 * ManualResetEvent.cs:
801 * AutoResetEvent.cs: Use the WaitHandle.Handle property instead of
804 * WaitHandle.cs: Hide the os_handle field and the WaitOne_internal
807 2002-09-03 Dick Porter <dick@ximian.com>
809 * Thread.cs: Added thread ID field
811 2002-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
813 * WaitHandle.cs: IDisposable fixes.
815 2002-08-14 Dick Porter <dick@ximian.com>
817 * Thread.cs: Make CurrentUICulture act the same as CurrentCulture
820 2002-08-12 Dietmar Maurer <dietmar@ximian.com>
822 * ThreadAbortException.cs: impl. ExceptionState property.
824 * Thread.cs: moved all instance variables to the start of the
825 class. added support for Thread::Abort()
827 2002-04-30 Dick Porter <dick@ximian.com>
829 * Thread.cs: If LocalDataStoreSlot already has data set, remove it
830 before adding a new one.
832 Use the Thread object destructor to tell the runtime to close the
835 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
837 * Interlocked.cs: made all methods icalls.
839 2002-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
841 * IOCompletionCallback.cs: added attributes to the delegate
842 (CLSCompliant(false) and Serializable).
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)
850 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
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
857 Wed Feb 13 21:51:30 CET 2002 Paolo Molaro <lupus@ximian.com>
859 * Thread.cs: implement CurrentCulture property needed by
860 Convert.ChangeType() (used when compiling enums).
862 2002-01-23 Dick Porter <dick@ximian.com>
864 * ManualResetEvent.cs:
865 * AutoResetEvent.cs: Fixed DOS line endings
867 2002-01-22 Veronica De Santis <veron78@interfree.it>
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
874 2002-01-16 Veronica De Santis <veron78@interfree.it>
876 * WaitHandle.cs : Renamed handle to os_handle and make it protected
878 * Mutex.cs : Write the System.Threading.Mutex methods ( constructors
879 and the ReleaseMutex)
881 2002-01-15 Dick Porter <dick@ximian.com>
884 * Thread.cs: Make the runtime's idea of infinite timeouts coincide
885 with the class library's
887 2002-01-10 Dick Porter <dick@ximian.com>
889 * WaitHandle.cs: Added checks for too many handles and null
890 handles in WaitAll() and WaitAny
893 2002-01-05 Ravi Pratap <ravi@ximian.com>
895 * AutoResetEvent.cs, ManualResetEvent.cs, Monitor.cs : MonoTODO
898 * Mutex.cs, Overlapped.cs, ReaderWriterLock.cs, RegisteredWaitHandle.cs,
899 Thread.cs, ThreadAbortException.cs, ThreadPool.cs, Timer.cs, WaitHandler.cs : Ditto.
901 2001-12-11 Dick Porter <dick@ximian.com>
903 * WaitHandle.cs: Implemented WaitAll(), WaitAny() and WaitOne() as
906 2001-11-26 Dick Porter <dick@ximian.com>
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.
913 * Monitor.cs: Use bool returns from internal calls now they are
914 supported by the runtime. Coalesce enter with the try_enter
917 Wed Nov 14 17:06:18 CET 2001 Paolo Molaro <lupus@ximian.com>
919 * Overlapped.cs, ThreadPool.cs, Timer.cs: CLSCompliant updates.
921 2001-10-03 Dick Porter <dick@ximian.com>
923 * Monitor.cs: Implemented all methods except the two Wait()
924 methods that take boolean parameters
926 2001-09-28 Dick Porter <dick@ximian.com>
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.
934 * Monitor.cs: Comment out the GetType() calls because it isn't implemented yet
936 2001-09-25 Dick Porter <dick@ximian.com>
938 * Thread.cs: Implement Join and timed Join, set correct state
939 around Start, Join and Sleep calls, implement IsAlive and
940 ThreadState properties.
942 * ThreadState.cs (Threading): Added StopRequested,
943 SuspendRequested, Suspended values
945 2001-09-23 Dick Porter <dick@ximian.com>
947 * Thread.cs: Implemented CurrentThread and Sleep (both versions)
948 with internal calls, and Name.
950 2001-09-21 Dick Porter <dick@ximian.com>
952 * Thread.cs: Implement Thread(ThreadStart) constructor and Start()
953 with an internal call
955 * WaitHandle.cs: Close calls Dispose(false)
957 2001-09-13 Dick Porter <dick@ximian.com>
959 * ApartmentState.cs (Threading): Set the correct enum values
961 2001-09-13 Dick Porter <dick@ximian.com>
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
973 2001-07-18 Michael Lambert <michaellambert@email.com>
975 * ThreadPriority.cs, ThreadState.cs: Add.