2003-12-02 Dick Porter <dick@ximian.com>
[mono.git] / mcs / class / corlib / System.Threading / ChangeLog
1 2003-12-02  Dick Porter  <dick@ximian.com>
2
3         * Thread.cs: Throw InvalidOperationException if Thread.Name is
4         already set.
5
6 2003-12-01  Dick Porter  <dick@ximian.com>
7
8         * Thread.cs: Implement CurrentCulture and CurrentUICulture
9
10 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
11
12         * Thread.cs: Add new VolatileRead/VolatileWrite methods from 1.1
13
14 2003-10-23  Lluis Sanchez Gual  <lluis@ximian.com>
15
16         * Thread.cs: Added ResetDataStoreStatus and RestoreDataStoreStatus
17           methods. They are used in CrossAppDomainChannel to save and restore
18           thread's local data when switching between domains.
19
20 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21
22         * ManualResetEvent.cs: added check for disposed.
23         * Thread.cs: no need to init this field.
24
25 2003-10-01  Zoltan Varga  <vargaz@freemail.hu>
26
27         * Thread.cs: Add locking to AllocateNamedDataSlot and 
28         FreeNamedDataSlot.
29
30 Wed Aug 20 12:01:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
31
32         * Thread.cs: put all the fields at the start and add
33         more fields needed by the runtime.
34
35 2003-08-14  Lluis Sanchez Gual  <lluis@ximian.com>
36
37         * Thread.cs: SetData() method: use Hashtable.Contains to check
38           if a dataslot has been allocated (value could be null).
39
40 2003-07-23  Duncan Mak  <duncan@ximian.com>
41
42         * WaitHandle.cs (CheckDisposed): This method is not in the public
43         API, mark it as 'internal'.
44
45 2003-07-01  Dick Porter  <dick@ximian.com>
46
47         * Thread.cs: Throw an exception if thread creation failed.
48         (Better than just blowing up later.)
49
50 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
51
52         * ThreadPool.cs: use async delegate invoke.
53
54 2003-06-25  Dick Porter  <dick@ximian.com>
55
56         * WaitHandle.cs: Default handle value should be InvalidHandle, not
57         Zero.
58
59 2003-06-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
60
61         * ThreadPool.cs: correctly create a TimeSpan with provided the number of
62         milliseconds.
63
64         * WaitHandle.cs: fixes for WaitAny/All and TimeSpan.
65
66 2003-06-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
67
68         * WaitHandle.cs: checks and exceptions.
69
70 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
71
72         * NativeEventCalls.cs: added CloseEvent_intenal.
73         * WaitHandle.cs: call CloseEvent_internal when disposing.
74
75 2003-05-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
76
77         * RegisteredWaitHandle.cs: check that the callback is not null before
78         invoking.
79
80         * ThreadPool.cs: fixed timeout -> TimeSpan conversions (closes bug
81         #43963). Queue the item before setting the handle. If there's a timeout,
82         avoid trying to Dequeue, getting the exception et al, just continue the
83         loop.
84
85 Mon May 19 09:07:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
86
87         * Monitor.cs: removed test_owner, the check is already done in the
88         icall.
89
90 Tue May 13 15:34:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
91
92         * Thread.cs: added missing field used by the runtime and
93         a new field to support thread-static data.
94
95 2003-04-17  Pedro Martínez Juliá  <yoros@wanadoo.es>
96
97         * Timer.cs: Change the position of two lines because they were
98         before the "if" that ensures the integrity. After this, the first of
99         that two lines was producing a NullReferenceException.
100
101 2003-04-09  Dick Porter  <dick@ximian.com>
102
103         * Thread.cs: Make sure a reference to the ThreadStart delegate is
104         held.  There's no telling how long it will be before
105         Thread.Start() is called, and GC might destroy the delegate.
106         Thread() and Start() need to be rewritten so that the runtime
107         creates the new thread when Start() is called, which will simplify
108         the code a great deal.
109
110 2003-03-20  Miguel de Icaza  <miguel@ximian.com>
111
112         * Thread.cs (CurrentCuluture): use the invaraint culture instead
113         of "" for the current_culture setting.
114
115 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
116
117         * Thread.cs: Fix visibility of ResetAbort().
118
119 2003-03-18  Dick Porter  <dick@ximian.com>
120
121         * Thread.cs: Keep the thread state updated in all the places that
122         require it.  (Suspend, Resume and Interrupt not handled yet)
123
124 2003-03-03  Lluis Sanchez Gual <lluis@ideary.com>
125
126         * Thread.cs: Changed implementation of CurrentContext, adapted to the changes
127           in the runtime.
128
129 2003-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
130
131         * Thread.cs: implemented CurrentContext.
132
133 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
134
135         * Thread.cs: made the thread_id for the current thread accesible through
136         an internal property.  
137
138 2003-02-17  Dick Porter  <dick@ximian.com>
139
140         * Thread.cs: Added the Start semaphore field to the class.  Update
141         the thread state after Start() has returned, not before.
142
143 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
144
145         * Thread.cs (Sleep): Timeout.Infinite is a value argument.
146
147 2003-02-11  Dick Porter  <dick@ximian.com>
148
149         * Monitor.cs: Infinite wait is Infinite, not 0 ms
150
151 2003-02-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
152
153         * Thread.cs: fixed bug #37759.
154
155 2003-02-07  Patrik Torstensson
156
157         * Timer.cs: Set the Background thread flag for the timer thread
158
159 2003-02-05  Patrik Torstensson
160
161         * ThreadPool.cs: Reformated and fixed issue that made all thread exit the pool. 
162
163 2003-02-04  Lluis Sanchez Gual <lluis@ideary.com>
164
165         * ThreadPool.cs: Implemented RegisterWaitForSingleObject methods.
166
167 Tue Jan 28 17:55:59 CET 2003 Paolo Molaro <lupus@ximian.com>
168
169         * Thread.cs: delay-init datastorehash.
170
171 2003-01-10  Patrik Torstensson  <totte@race-x-change.com>
172
173         * ThreadPool.cs: Temporary removed the usage of monitor thread, implemented a 
174                     model more equal to the MS one.
175
176 2002-12-10  Dick Porter  <dick@ximian.com>
177
178         * Monitor.cs:
179         * Thread.cs:
180         * ThreadPool.cs:
181         * Timer.cs:
182         * WaitHandle.cs: Use TotalMilliseconds to convert a TimeSpan to
183         ms, not Milliseconds.
184
185 2002-12-07  Martin Baulig  <martin@ximian.com>
186
187         * Timer.cs: Make it actually work; now it no longer sets your
188         application on fire if you use a zero periode and Timer.Change()
189         actually works.
190
191 2002-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
192
193         * Timer.cs: implemented more stuff. It works now.
194
195 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
196
197         * Thread.cs: Implement GetDomain() and GetDomainID().
198
199 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
200
201         * ThreadPool.cs: now the monitor thread is not sleeping and checking if
202         more worker threads needed. It waits on _DataInQueue. If (and only if)
203         there's data in the queue it checks if more worker threads needed and
204         then sleeps 0.5s before waiting for queued data again.
205
206 2002-09-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
207
208         * ThreadPool.cs: set IsThreadPoolThread before starting the worker.
209
210 2002-09-11  Dick Porter  <dick@ximian.com>
211
212         * Mutex.cs: 
213         * ManualResetEvent.cs: 
214         * AutoResetEvent.cs: Use the WaitHandle.Handle property instead of
215         the private field
216
217         * WaitHandle.cs: Hide the os_handle field and the WaitOne_internal
218         method
219
220 2002-09-03  Dick Porter  <dick@ximian.com>
221
222         * Thread.cs: Added thread ID field
223
224 2002-08-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
225
226         * WaitHandle.cs: IDisposable fixes.
227
228 2002-08-14  Dick Porter  <dick@ximian.com>
229
230         * Thread.cs: Make CurrentUICulture act the same as CurrentCulture
231         for now.
232
233 2002-08-12  Dietmar Maurer  <dietmar@ximian.com>
234
235         * ThreadAbortException.cs: impl. ExceptionState property.
236
237         * Thread.cs: moved all instance variables to the start of the
238         class. added support for Thread::Abort()
239
240 2002-04-30  Dick Porter  <dick@ximian.com>
241
242         * Thread.cs: If LocalDataStoreSlot already has data set, remove it
243         before adding a new one.
244
245         Use the Thread object destructor to tell the runtime to close the
246         thread handle.
247
248 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
249
250         * Interlocked.cs: made all methods icalls.
251
252 2002-04-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
253
254         * IOCompletionCallback.cs: added attributes to the delegate
255         (CLSCompliant(false) and Serializable).
256
257 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
258         * Thread.cs: Fixed IsThreadPoolThread to use a internal property instead of extending 
259                                  the threadstate enum.
260         * ThreadPool.cs: Now using the internal Isthreadpoolthread property
261         * ThreadState.cs: removed non-standard enum (ThreadPoolThread)
262
263 2002-04-14 Patrik Torstensson <patrik.torstensson@labs2.com>
264
265         * ThreadState.cs: Added enum for threadpool thread
266         * Thread.cs: changed the set/clr_state to be internal (used from threadpool)
267         * Thread.cs: Added IsThreadPoolThread
268         * ThreadPool.cs: Implementation of QueueUserWorkItem
269
270 Wed Feb 13 21:51:30 CET 2002 Paolo Molaro <lupus@ximian.com>
271
272         * Thread.cs: implement CurrentCulture property needed by
273         Convert.ChangeType() (used when compiling enums).
274
275 2002-01-23  Dick Porter  <dick@ximian.com>
276
277         * ManualResetEvent.cs: 
278         * AutoResetEvent.cs: Fixed DOS line endings
279
280 2002-01-22  Veronica De Santis <veron78@interfree.it>   
281         
282         * NativeEventCalls : Class that contains internal calls shared by Auto 
283                              and Manual Reset Events
284         * AutoResetEvents.cs : Added class AutoResetEvents and its implementation
285         * ManualResetEvents.cs : Added class ManualResetEvents and its implementation
286
287 2002-01-16  Veronica De Santis <veron78@interfree.it>   
288         
289         * WaitHandle.cs : Renamed handle to os_handle and make it protected
290                           instead of private.
291         * Mutex.cs : Write the System.Threading.Mutex methods ( constructors 
292                      and the ReleaseMutex)
293
294 2002-01-15  Dick Porter  <dick@ximian.com>
295
296         * WaitHandle.cs:
297         * Thread.cs: Make the runtime's idea of infinite timeouts coincide
298         with the class library's
299
300 2002-01-10  Dick Porter  <dick@ximian.com>
301
302         * WaitHandle.cs: Added checks for too many handles and null
303         handles in WaitAll() and WaitAny
304         
305
306 2002-01-05  Ravi Pratap  <ravi@ximian.com>
307
308         * AutoResetEvent.cs, ManualResetEvent.cs, Monitor.cs : MonoTODO
309         decoration.
310
311         * Mutex.cs, Overlapped.cs, ReaderWriterLock.cs, RegisteredWaitHandle.cs,
312         Thread.cs, ThreadAbortException.cs, ThreadPool.cs, Timer.cs, WaitHandler.cs : Ditto.
313
314 2001-12-11  Dick Porter  <dick@ximian.com>
315
316         * WaitHandle.cs: Implemented WaitAll(), WaitAny() and WaitOne() as
317         internal calls.
318
319 2001-11-26  Dick Porter  <dick@ximian.com>
320
321         * Thread.cs: DataSlot uses a single system TLS slot, and a
322         hashtable per thread.  Some minor changes to reflect the new
323         internal calls using the new IO library, and the newly-supported
324         bool returns from internal calls.
325
326         * Monitor.cs: Use bool returns from internal calls now they are
327         supported by the runtime.  Coalesce enter with the try_enter
328         internal call.
329
330 Wed Nov 14 17:06:18 CET 2001 Paolo Molaro <lupus@ximian.com>
331
332         * Overlapped.cs, ThreadPool.cs, Timer.cs: CLSCompliant updates.
333
334 2001-10-03  Dick Porter  <dick@ximian.com>
335
336         * Monitor.cs: Implemented all methods except the two Wait()
337         methods that take boolean parameters
338
339 2001-09-28  Dick Porter  <dick@ximian.com>
340
341         * Thread.cs: Implemented AllocateDataSlot(),
342         AllocateNamedDataSlot(), FreeNamedDataSlot(), GetData(),
343         GetNamedDataSlot(), SetData(), IsBackground.  Reworked Thread()
344         and Start() to avoid a race condition. Added thread-safe state
345         changing private operations.
346
347         * Monitor.cs: Comment out the GetType() calls because it isn't implemented yet
348
349 2001-09-25  Dick Porter  <dick@ximian.com>
350
351         * Thread.cs: Implement Join and timed Join, set correct state
352         around Start, Join and Sleep calls, implement IsAlive and
353         ThreadState properties.
354
355         * ThreadState.cs (Threading): Added StopRequested,
356         SuspendRequested, Suspended values
357
358 2001-09-23  Dick Porter  <dick@ximian.com>
359
360         * Thread.cs: Implemented CurrentThread and Sleep (both versions)
361         with internal calls, and Name.
362
363 2001-09-21  Dick Porter  <dick@ximian.com>
364
365         * Thread.cs: Implement Thread(ThreadStart) constructor and Start()
366         with an internal call
367
368         * WaitHandle.cs: Close calls Dispose(false)
369
370 2001-09-13  Dick Porter  <dick@ximian.com>
371
372         * ApartmentState.cs (Threading): Set the correct enum values
373
374 2001-09-13  Dick Porter  <dick@ximian.com>
375
376         * ApartmentState.cs, AutoResetEvent.cs, IOCompletionCallback.cs,
377         Interlocked.cs, LockCookie.cs, ManualResetEvent.cs, Monitor.cs,
378         Mutex.cs, NativeOverlapped.cs, Overlapped.cs, ReaderWriterLock.cs,
379         RegisteredWaitHandle.cs, SynchronizationLockException.cs,
380         Thread.cs, ThreadAbortException.cs, ThreadInterruptedException.cs,
381         ThreadPool.cs, ThreadStart.cs, ThreadStateException.cs,
382         Timeout.cs, Timer.cs, TimerCallback.cs, WaitCallback.cs,
383         WaitHandle.cs, WaitOrTimerCallback.cs: System.Threading class
384         stubs.
385         
386 2001-07-18  Michael Lambert <michaellambert@email.com>
387
388         * ThreadPriority.cs, ThreadState.cs: Add.