1 2004-12-05 Miguel de Icaza <miguel@ximian.com>
3 * AutoResetEvent.cs (Set, Reset): If we are disposed, throw a
4 ObjectDisposedEvent, helped track the WebConnection destructor
7 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9 * Timer.cs: don't invoke the callback twice when the timer changes.
12 2004-09-08 Marek Safar <marek.safar@seznam.cz>
14 * Interlocked.cs: Class is static in NET_2_0.
16 2004-09-04 Sebastien Pouliot <sebastien@ximian.com>
18 * Thread.cs: Changed an imperative security demand to declarative
19 (unsupported) so it doesn't (for now) call the security runtime.
21 2004-08-20 Sebastien Pouliot <sebastien@ximian.com>
23 * Thread.cs: Added Fx 2.0 properties/methods/attributes.
25 2004-08-12 Sebastien Pouliot <sebastien@ximian.com>
27 * CompressedStackSwitcher.cs: Added missing [ComVisible] and
28 [ReliabilityContract] attributes.
29 * ExecutionContext.cs: Added missing [ComVisible] and
30 [Serializable] attributes.
31 * HostExecutionContext.cs: Added missing [ComVisible] attribute.
32 * HostExecutionContextManager.cs: Added missing [ComVisible] and
33 [ReliabilityContract] attributes.
34 * HostExecutionContextSwitcher.cs: Added missing Equals and
35 GetHashCode methods and [ComVisible] and [ReliabilityContract] attrs.
36 * ParameterizedThreadStart.cs: New delegate in NET_2_0.
37 * SendOrPostCallback.cs: Added missing [ComVisible] attribute.
38 * SynchronizationContext.cs: Added new (2.0 beta1) methods Copy and
39 WaitHelper. Added missing [ComVisible] and [ReliabilityContract] attrs.
40 * SynchronizationContextSwitcher.cs: Added missing [ComVisible] and
41 [ReliabilityContract] attributes.
43 2004-08-08 Sebastien Pouliot <sebastien@ximian.com>
45 * HostExecutionContext.cs: Fx 2.0 stub required for AppDomain.
46 * HostExecutionContextManager.cs: Fx 2.0 stub required for AppDomain.
47 * HostExecutionContextSwitcher.cs: Fx 2.0 stub required for AppDomain.
49 2004-08-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
51 * Timer.cs: don't invoke the callback if the period changes before the
52 due time. Fixes bug #62421.
54 2004-07-27 Lluis Sanchez Gual <lluis@novell.com>
56 * ExecutionContext.cs, ExecutionContextSwitcher.cs,
57 SynchronizationContext.cs, SynchronizationContextSwitcher.cs: Added
60 2004-07-15 Dick Porter <dick@ximian.com>
62 * Thread.cs: Hold a lock in GetNamedDataSlot. Fixes bug 61582,
63 based on patch by Sébastien Robitaille
64 (sebastien.robitaille@croesus.com). Also fix instances of
65 lock(typeof(Thread)) to lock a private object instead.
67 2004-07-14 Sebastien Pouliot <sebastien@ximian.com>
69 * AsyncFlowControl.cs: New structure in Fx 2.0 required in
70 System.Security namespace.
71 * CompressedStackSwitcher.cs: New structure in Fx 2.0 required in
72 System.Security namespace.
73 * ContextCallback.cs: New delegate in Fx 2.0 required in
74 System.Security namespace.
75 * CompressedStack.cs: Updated API for NET_2_0 profile.
77 2004-07-10 Lluis Sanchez Gual <lluis@ximian.com>
79 * SendOrPostCallback.cs: New delegate.
81 2004-06-24 Dick Porter <dick@ximian.com>
83 * Mutex.cs: Implement the createdNew parameter
85 2004-06-15 Gert Driesen <drieseng@users.sourceforge.net>
87 * Thread.cs: changed return type of VolatileRead to UIntPtr
88 * ThreadPool.cs: set return type of SetMinThreads to bool
90 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
92 * Thread.cs: Added new fields to keep sync with MonoThread.
93 Removed state changes in Sleep and Join. The state change is now done
94 in the icall. For accessing to internal fields lock with synch_lock
95 instead of this, which can be a source of deadlocks.
97 2004-06-15 Lluis Sanchez Gual <lluis@ximian.com>
99 * Timer.cs: Don't abort the thread if Dispose() is called from the runner
102 2004-06-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
105 (CurrentPrincipal): lock on CurrentThread, not typeof (Thread) and set
106 the thread IPrincipal if we get it from the AppDomain.
108 2004-06-09 Gert Driesen <drieseng@users.sourceforge.net>
110 * CompressedStack.cs: Added finalizer to match public API of
113 2004-05-19 Lluis Sanchez Gual <lluis@ximian.com>
115 * Thread.cs: Some fixes in Abort. Implemented Suspend and Resume.
116 Added internal interruption_requested field.
118 2004-05-13 Sebastien Pouliot <sebastien@ximian.com>
120 * CompressedStack.cs: Added an internal constructor so a default one
121 doesn't appear with corcompare.
122 * Thread.cs: Added missing MemoryBarrier (only for 1.1) and SpinWait to please
123 corcompare. Both throw a NotImplementedException.
124 * ThreadPool.cs: Added missing UnsafeRegisterWaitForSingleObject methods (4
125 overloads) to please corcompare. All throw a NotImplementedException.
127 2004-05-12 Zoltan Varga <vargaz@freemail.hu>
129 * CompressedStack.cs: New file.
131 2004-04-15 Lluis Sanchez Gual <lluis@ximian.com>
133 * ThreadPool.cs: Added GetMinThreads and SetMinThreads.
134 * Timer.cs: In Change, return false if the timer has been disposed.
135 In Dispose, notify the WaitHandle.
137 2004-04-11 Lluis Sanchez Gual <lluis@ximian.com>
139 * ReaderWriterLock.cs: More fixes: never wait where acquiring a reader lock
140 if the thread already has the lock. Added readyWaitingReaders variable to
141 keep track of threads ready to get the reader lock.
143 2004-04-11 Lluis Sanchez Gual <lluis@ximian.com>
145 * LockQueue.cs: Moved lockCount change inside the rwlock lock. Removed
146 lock(this) when entering the rwlock to avoid a deadlock.
147 * ReaderWriterLock.cs: In AcquireWriterLock, queue the thread if the queue
148 is not empty (even if state==0).
150 2004-04-09 Zoltan Varga <vargaz@freemail.hu>
152 * Timer.cs: Call the callback immediately if dueTime is 0. Fixes
155 2004-04-08 Jackson Harper <jackson@ximian.com>
157 * ReaderWriterLock.cs: Fix tyop
159 2004-04-08 Lluis Sanchez Gual <lluis@ximian.com>
161 * ReaderWriterLock.cs: Changed some methods to private.
162 * WaitHandle.cs: In Wait methods, release the synchronization context when
165 2004-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
167 * Timer.cs: call Abort on the Runner instance too.
169 2004-04-07 Jackson Harper <jackson@ximian.com>
171 * Thread.cs: Use new culture info method for constructing the
174 2004-04-07 Lluis Sanchez Gual <lluis@ximian.com>
176 * ReaderWriterLock.cs: When a thread holds a writer lock, a call to
177 AcquireReaderLock works like a call to AcquireWriterLock.
179 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
181 * Monitor.cs: In Wait(), release the synchronization context when
184 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
186 * LockCookie.cs: Keep in this class the count of reader or writer locks
187 for a thread, not only whether it has locks or not.
188 * LockQueue.cs: Added property for checking if a thread is waiting in
189 the queue. Wait now returns a boolean that set to false on timeout
191 * ReaderWriterLock.cs: Started fixing bugs but I had to rewrite a lot of it.
192 The main change is that now it keeps a reader lock count for each
193 thread. This is needed since methods like ReleaseLock or
194 UpgradeToWriterLock need to return a per-thread status in LockCookie.
195 Also added support for recursive writer-lock requests.
197 2004-03-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
199 * ThreadAbortException.cs: use same HResult as MS.
200 * Timer.cs: abort the running thread when disposing the Timer. This
201 fixes NullRefs when finishing xsp.
203 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
205 * NativeOverlapped.cs: added 2 new internal fields.
206 * Overlapped.cs: implemented, but it's not used.
208 * ThreadPool.cs: implemented BindHandle.
210 2004-03-08 Zoltan Varga <vargaz@freemail.hu>
212 * Timer.cs (Dispose): Applied patch from Jaroslaw Kowalski
213 (jaak@zd.com.pl). Fix finalization problems during appdomain unload.
215 2004-02-23 Jackson Harper <jackson@ximian.com>
217 * LockCookie.cs: Add some fields for restoring locks.
218 * ReaderWriterLock.cs: Implement
219 * LockQueue.cs: New File - used for queueing thread locks in
222 2004-02-19 Jackson Harper <jackson@ximian.com>
224 * Monitor.cs: Fix spelleng.
226 2004-02-09 Zoltan Varga <vargaz@freemail.hu>
228 * Thread.cs: Add fields added to unmanaged MonoThread here as well.
229 Fixes random errors caused by memory corruption.
231 2004-02-06 Zoltan Varga <vargaz@freemail.hu>
233 * Thread.cs: Store the thread name in unmanaged memory, since the
234 thread object is shared between appdomains.
236 2004-02-05 Sebastien Pouliot <sebastien@ximian.com>
238 * Thread.cs: Implemented CurrentPrincipal.
240 2004-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
242 * Thread.cs: delayed thread creation until Start is called. If we
243 don't do that and Start() is not called, the thread is leaked. First
244 step towards fixing bug #53078.
246 2003-12-02 Dick Porter <dick@ximian.com>
248 * Thread.cs: Throw InvalidOperationException if Thread.Name is
251 2003-12-01 Dick Porter <dick@ximian.com>
253 * Thread.cs: Implement CurrentCulture and CurrentUICulture
255 2003-11-12 Miguel de Icaza <miguel@ximian.com>
257 * Thread.cs: Add new VolatileRead/VolatileWrite methods from 1.1
259 2003-10-23 Lluis Sanchez Gual <lluis@ximian.com>
261 * Thread.cs: Added ResetDataStoreStatus and RestoreDataStoreStatus
262 methods. They are used in CrossAppDomainChannel to save and restore
263 thread's local data when switching between domains.
265 2003-10-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
267 * ManualResetEvent.cs: added check for disposed.
268 * Thread.cs: no need to init this field.
270 2003-10-01 Zoltan Varga <vargaz@freemail.hu>
272 * Thread.cs: Add locking to AllocateNamedDataSlot and
275 Wed Aug 20 12:01:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
277 * Thread.cs: put all the fields at the start and add
278 more fields needed by the runtime.
280 2003-08-14 Lluis Sanchez Gual <lluis@ximian.com>
282 * Thread.cs: SetData() method: use Hashtable.Contains to check
283 if a dataslot has been allocated (value could be null).
285 2003-07-23 Duncan Mak <duncan@ximian.com>
287 * WaitHandle.cs (CheckDisposed): This method is not in the public
288 API, mark it as 'internal'.
290 2003-07-01 Dick Porter <dick@ximian.com>
292 * Thread.cs: Throw an exception if thread creation failed.
293 (Better than just blowing up later.)
295 2003-06-27 Dietmar Maurer <dietmar@ximian.com>
297 * ThreadPool.cs: use async delegate invoke.
299 2003-06-25 Dick Porter <dick@ximian.com>
301 * WaitHandle.cs: Default handle value should be InvalidHandle, not
304 2003-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
306 * ThreadPool.cs: correctly create a TimeSpan with provided the number of
309 * WaitHandle.cs: fixes for WaitAny/All and TimeSpan.
311 2003-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
313 * WaitHandle.cs: checks and exceptions.
315 2003-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
317 * NativeEventCalls.cs: added CloseEvent_intenal.
318 * WaitHandle.cs: call CloseEvent_internal when disposing.
320 2003-05-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
322 * RegisteredWaitHandle.cs: check that the callback is not null before
325 * ThreadPool.cs: fixed timeout -> TimeSpan conversions (closes bug
326 #43963). Queue the item before setting the handle. If there's a timeout,
327 avoid trying to Dequeue, getting the exception et al, just continue the
330 Mon May 19 09:07:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
332 * Monitor.cs: removed test_owner, the check is already done in the
335 Tue May 13 15:34:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
337 * Thread.cs: added missing field used by the runtime and
338 a new field to support thread-static data.
340 2003-04-17 Pedro Mart�ez Juli� <yoros@wanadoo.es>
342 * Timer.cs: Change the position of two lines because they were
343 before the "if" that ensures the integrity. After this, the first of
344 that two lines was producing a NullReferenceException.
346 2003-04-09 Dick Porter <dick@ximian.com>
348 * Thread.cs: Make sure a reference to the ThreadStart delegate is
349 held. There's no telling how long it will be before
350 Thread.Start() is called, and GC might destroy the delegate.
351 Thread() and Start() need to be rewritten so that the runtime
352 creates the new thread when Start() is called, which will simplify
353 the code a great deal.
355 2003-03-20 Miguel de Icaza <miguel@ximian.com>
357 * Thread.cs (CurrentCuluture): use the invaraint culture instead
358 of "" for the current_culture setting.
360 2003-03-25 Zoltan Varga <vargaz@freemail.hu>
362 * Thread.cs: Fix visibility of ResetAbort().
364 2003-03-18 Dick Porter <dick@ximian.com>
366 * Thread.cs: Keep the thread state updated in all the places that
367 require it. (Suspend, Resume and Interrupt not handled yet)
369 2003-03-03 Lluis Sanchez Gual <lluis@ideary.com>
371 * Thread.cs: Changed implementation of CurrentContext, adapted to the changes
374 2003-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
376 * Thread.cs: implemented CurrentContext.
378 2003-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
380 * Thread.cs: made the thread_id for the current thread accesible through
381 an internal property.
383 2003-02-17 Dick Porter <dick@ximian.com>
385 * Thread.cs: Added the Start semaphore field to the class. Update
386 the thread state after Start() has returned, not before.
388 2003-02-13 Zoltan Varga <vargaz@freemail.hu>
390 * Thread.cs (Sleep): Timeout.Infinite is a value argument.
392 2003-02-11 Dick Porter <dick@ximian.com>
394 * Monitor.cs: Infinite wait is Infinite, not 0 ms
396 2003-02-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
398 * Thread.cs: fixed bug #37759.
400 2003-02-07 Patrik Torstensson
402 * Timer.cs: Set the Background thread flag for the timer thread
404 2003-02-05 Patrik Torstensson
406 * ThreadPool.cs: Reformated and fixed issue that made all thread exit the pool.
408 2003-02-04 Lluis Sanchez Gual <lluis@ideary.com>
410 * ThreadPool.cs: Implemented RegisterWaitForSingleObject methods.
412 Tue Jan 28 17:55:59 CET 2003 Paolo Molaro <lupus@ximian.com>
414 * Thread.cs: delay-init datastorehash.
416 2003-01-10 Patrik Torstensson <totte@race-x-change.com>
418 * ThreadPool.cs: Temporary removed the usage of monitor thread, implemented a
419 model more equal to the MS one.
421 2002-12-10 Dick Porter <dick@ximian.com>
427 * WaitHandle.cs: Use TotalMilliseconds to convert a TimeSpan to
428 ms, not Milliseconds.
430 2002-12-07 Martin Baulig <martin@ximian.com>
432 * Timer.cs: Make it actually work; now it no longer sets your
433 application on fire if you use a zero periode and Timer.Change()
436 2002-11-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
438 * Timer.cs: implemented more stuff. It works now.
440 2002-10-25 Zoltan Varga <vargaz@freemail.hu>
442 * Thread.cs: Implement GetDomain() and GetDomainID().
444 2002-10-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
446 * ThreadPool.cs: now the monitor thread is not sleeping and checking if
447 more worker threads needed. It waits on _DataInQueue. If (and only if)
448 there's data in the queue it checks if more worker threads needed and
449 then sleeps 0.5s before waiting for queued data again.
451 2002-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
453 * ThreadPool.cs: set IsThreadPoolThread before starting the worker.
455 2002-09-11 Dick Porter <dick@ximian.com>
458 * ManualResetEvent.cs:
459 * AutoResetEvent.cs: Use the WaitHandle.Handle property instead of
462 * WaitHandle.cs: Hide the os_handle field and the WaitOne_internal
465 2002-09-03 Dick Porter <dick@ximian.com>
467 * Thread.cs: Added thread ID field
469 2002-08-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
471 * WaitHandle.cs: IDisposable fixes.
473 2002-08-14 Dick Porter <dick@ximian.com>
475 * Thread.cs: Make CurrentUICulture act the same as CurrentCulture
478 2002-08-12 Dietmar Maurer <dietmar@ximian.com>
480 * ThreadAbortException.cs: impl. ExceptionState property.
482 * Thread.cs: moved all instance variables to the start of the
483 class. added support for Thread::Abort()
485 2002-04-30 Dick Porter <dick@ximian.com>
487 * Thread.cs: If LocalDataStoreSlot already has data set, remove it
488 before adding a new one.
490 Use the Thread object destructor to tell the runtime to close the
493 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
495 * Interlocked.cs: made all methods icalls.
497 2002-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
499 * IOCompletionCallback.cs: added attributes to the delegate
500 (CLSCompliant(false) and Serializable).
502 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
503 * Thread.cs: Fixed IsThreadPoolThread to use a internal property instead of extending
504 the threadstate enum.
505 * ThreadPool.cs: Now using the internal Isthreadpoolthread property
506 * ThreadState.cs: removed non-standard enum (ThreadPoolThread)
508 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
510 * ThreadState.cs: Added enum for threadpool thread
511 * Thread.cs: changed the set/clr_state to be internal (used from threadpool)
512 * Thread.cs: Added IsThreadPoolThread
513 * ThreadPool.cs: Implementation of QueueUserWorkItem
515 Wed Feb 13 21:51:30 CET 2002 Paolo Molaro <lupus@ximian.com>
517 * Thread.cs: implement CurrentCulture property needed by
518 Convert.ChangeType() (used when compiling enums).
520 2002-01-23 Dick Porter <dick@ximian.com>
522 * ManualResetEvent.cs:
523 * AutoResetEvent.cs: Fixed DOS line endings
525 2002-01-22 Veronica De Santis <veron78@interfree.it>
527 * NativeEventCalls : Class that contains internal calls shared by Auto
528 and Manual Reset Events
529 * AutoResetEvents.cs : Added class AutoResetEvents and its implementation
530 * ManualResetEvents.cs : Added class ManualResetEvents and its implementation
532 2002-01-16 Veronica De Santis <veron78@interfree.it>
534 * WaitHandle.cs : Renamed handle to os_handle and make it protected
536 * Mutex.cs : Write the System.Threading.Mutex methods ( constructors
537 and the ReleaseMutex)
539 2002-01-15 Dick Porter <dick@ximian.com>
542 * Thread.cs: Make the runtime's idea of infinite timeouts coincide
543 with the class library's
545 2002-01-10 Dick Porter <dick@ximian.com>
547 * WaitHandle.cs: Added checks for too many handles and null
548 handles in WaitAll() and WaitAny
551 2002-01-05 Ravi Pratap <ravi@ximian.com>
553 * AutoResetEvent.cs, ManualResetEvent.cs, Monitor.cs : MonoTODO
556 * Mutex.cs, Overlapped.cs, ReaderWriterLock.cs, RegisteredWaitHandle.cs,
557 Thread.cs, ThreadAbortException.cs, ThreadPool.cs, Timer.cs, WaitHandler.cs : Ditto.
559 2001-12-11 Dick Porter <dick@ximian.com>
561 * WaitHandle.cs: Implemented WaitAll(), WaitAny() and WaitOne() as
564 2001-11-26 Dick Porter <dick@ximian.com>
566 * Thread.cs: DataSlot uses a single system TLS slot, and a
567 hashtable per thread. Some minor changes to reflect the new
568 internal calls using the new IO library, and the newly-supported
569 bool returns from internal calls.
571 * Monitor.cs: Use bool returns from internal calls now they are
572 supported by the runtime. Coalesce enter with the try_enter
575 Wed Nov 14 17:06:18 CET 2001 Paolo Molaro <lupus@ximian.com>
577 * Overlapped.cs, ThreadPool.cs, Timer.cs: CLSCompliant updates.
579 2001-10-03 Dick Porter <dick@ximian.com>
581 * Monitor.cs: Implemented all methods except the two Wait()
582 methods that take boolean parameters
584 2001-09-28 Dick Porter <dick@ximian.com>
586 * Thread.cs: Implemented AllocateDataSlot(),
587 AllocateNamedDataSlot(), FreeNamedDataSlot(), GetData(),
588 GetNamedDataSlot(), SetData(), IsBackground. Reworked Thread()
589 and Start() to avoid a race condition. Added thread-safe state
590 changing private operations.
592 * Monitor.cs: Comment out the GetType() calls because it isn't implemented yet
594 2001-09-25 Dick Porter <dick@ximian.com>
596 * Thread.cs: Implement Join and timed Join, set correct state
597 around Start, Join and Sleep calls, implement IsAlive and
598 ThreadState properties.
600 * ThreadState.cs (Threading): Added StopRequested,
601 SuspendRequested, Suspended values
603 2001-09-23 Dick Porter <dick@ximian.com>
605 * Thread.cs: Implemented CurrentThread and Sleep (both versions)
606 with internal calls, and Name.
608 2001-09-21 Dick Porter <dick@ximian.com>
610 * Thread.cs: Implement Thread(ThreadStart) constructor and Start()
611 with an internal call
613 * WaitHandle.cs: Close calls Dispose(false)
615 2001-09-13 Dick Porter <dick@ximian.com>
617 * ApartmentState.cs (Threading): Set the correct enum values
619 2001-09-13 Dick Porter <dick@ximian.com>
621 * ApartmentState.cs, AutoResetEvent.cs, IOCompletionCallback.cs,
622 Interlocked.cs, LockCookie.cs, ManualResetEvent.cs, Monitor.cs,
623 Mutex.cs, NativeOverlapped.cs, Overlapped.cs, ReaderWriterLock.cs,
624 RegisteredWaitHandle.cs, SynchronizationLockException.cs,
625 Thread.cs, ThreadAbortException.cs, ThreadInterruptedException.cs,
626 ThreadPool.cs, ThreadStart.cs, ThreadStateException.cs,
627 Timeout.cs, Timer.cs, TimerCallback.cs, WaitCallback.cs,
628 WaitHandle.cs, WaitOrTimerCallback.cs: System.Threading class
631 2001-07-18 Michael Lambert <michaellambert@email.com>
633 * ThreadPriority.cs, ThreadState.cs: Add.