updating to the latest module.
[mono.git] / mcs / class / System / System.Diagnostics / ChangeLog
1 2005-02-22 Jonathan Pryor  <jonpryor@vt.edu>
2
3         * TraceImpl.cs: More Thread-safety fixes.  I have to lock on
4           Listeners.SyncRoot as we're traversing the collection and can't let the
5           collection change from underneath us while we're iterating over it
6           (alternately, we could clone the collection and iterate over the clone
7           without having locking issues -- assuming we had a lock-free clone -- 
8           but this would kill the GC).  Fixes 69964.  Only define lock_ if we're 
9           using the lock-free initialization routine; it's not used otherwise.
10
11 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
12
13         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): 
14           Use a lock-free algorithm for creating the settings information.
15         * TraceImpl.cs (InitOnce): Use a lock-free algorithm for creating the
16           listeners collection and initializing the world.
17
18 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
19
20         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): Don't 
21           read the .config file from the static ctor (again), as if it fails we'll 
22           get a TypeLoadException -- bad!  Instead, lazy-read the .config file.
23         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfigurationHandler): 
24           Require that the /switch/add/@value attribute contains only numeric values.
25         * TraceImpl.cs: Don't initialize everything in the static ctor, as if it
26           fails (due to an invalid .confg file) we get a TypeLoadException, while
27           .NET generates a ConfigurationException.  Instead, initialize everything
28           the first time the Listeners property is accessed, which allows the static
29           ctor to run without chance of failure, avoiding the TypeLoadException.
30         * TraceListenerCollection.cs: This should be thread-safe, as it's accessible
31           from a static member of TraceImpl (available through the public Debug and 
32           Trace classes).
33         * Switch.cs: Leave the original switch value alone.  If it isn't valid 
34           (i.e. numeric), the DiagnosticsConfigurationHandler will catch it.
35
36 2005-01-17 Jonathan Pryor  <jonpryor@vt.edu>
37
38         * DiagnosticsConfigurationHandler.cs: The /switch/add/@value attribute 
39           isn't optional under .NET 1.1, so make sure it exists.
40
41 2005-01-13 Jonathan Pryor  <jonpryor@vt.edu>
42
43         * DiagnosticsConfigurationHandler.cs: Make DiagnosticsConfiguration.Settings
44           thread-safe (double-checked locking isn't thread safe on .NET without
45           using a volatile variable, and setting the variable in the static
46           constructor is easier anyway).
47         * Switch.cs (GetConfigFileSetting): If the setting is non-numeric, set the
48           attribute value to the string "0".  This is apparently what .NET 1.1 does,
49           and allows the SwitchTest NUnit test to work w/o failures.
50
51 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
52
53         * Process.cs: always pass the same arguments to the runtime.
54
55 2004-09-11  Sebastien Pouliot  <sebastien@ximian.com>
56
57         * EventLogPermission.cs: Completed implementation.
58         * EventLogPermissionAccess.cs: Fixed enum values.
59         * EventLogPermissionEntry.cs: Added validation for machine names.
60         * EventLogPermissionEntryCollection.cs: Added synchronization
61         of entries with the base permission class.
62         * PerformanceCounterPermission.cs: Completed implementation.
63         * PerformanceCounterPermissionAccess.cs: Fixed enum values.
64         * PerformanceCounterPermissionEntry.cs: Added validations for machine
65         and category names.
66         * PerformanceCounterPermissionEntryCollection.cs: Added synchronization
67         of entries with the base permission class.
68
69 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
70
71         * EventLogPermission.cs: Fixed initialization (TagNames and
72         PermissionAccessType).
73         * EventLogPermissionAccess.cs: Added new enums for NET_2_0 and added 
74         [Obsolete] to some existing elements.
75         * EventLogPermissionAttribute.cs: Added missing validation to property
76         MachineName. Fixed changes for NET_2_0.
77         * PerformanceCounterPermission.cs: Fixed initialization (TagNames and
78         PermissionAccessType).
79         * PerformanceCounterPermissionAccess.cs: Added new enums for NET_2_0
80         and added [Obsolete] to some existing elements.
81         * PerformanceCounterPermissionAttribute.cs: Added missing validations
82         to properties (Path, MachineName). Fixed changes for NET_2_0.
83
84 2004-09-07  Dick Porter  <dick@ximian.com>
85
86         * Process.cs: Throw documented exceptions when getting stdin,
87         stdout or stderr and they haven't been redirected.  Check that
88         CreatePipe didn't fail, throw exceptions if it did.  Close
89         redirected streams when the process is disposed, rather than rely
90         on the GC disposing them later.  Makes timeline much happier,
91         because it could run out of file descriptors between GC
92         collections.
93
94 2004-09-06  Dick Porter  <dick@ximian.com>
95
96         * Process.cs: Make Dispose() actually dispose things.
97
98 2004-06-24  Atsushi Enomoto  <atsushi@ximian.com>
99
100         * Process.cs : quick fix for UseShellExecute=false on windows. See
101           the code comment.
102
103 2004-06-17  Lluis Sanchez Gual  <lluis@ximian.com>
104
105         * Process.cs: Added missing check in HasExited property.
106
107 2004-05-20  Gert Driesen (drieseng@users.sourceforge.net)
108
109         * EventLogPermissionAttribute.cs:
110         * PerformanceCounterPermissionAttribute.cs: adjust AllowMultiple
111         and Inherited to match .NET
112
113 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
114
115         * Process.cs: separate the command and the arguments when calling
116         Start_internal.
117
118 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
119
120         * Process.cs: redirecting I/O is not permitted if UseShellExecute is
121         true. Also throw if FileName is null.
122
123 2004-04-06  Lluis Sanchez Gual  <lluis@ximian.com>
124
125         * DiagnosticsConfigurationHandler.cs: If initializeData is provided,
126         use the constructor that only takes one string as parameter to
127         construct the listener. The name is set using the Name property, not the
128         constructor.
129         
130         * TextWriterTraceListener.cs: In Write*, do nothing if no writer was 
131         provided.
132
133 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
134
135         * Process.cs: use the ISynchronizeInvoke object to invoke the event.
136         Implemented Close, CloseMainWindow and Kill.
137
138 2004-03-23 Ben Maurer  <bmaurer@users.sourceforge.net>
139
140         * Switch.cs: Don't throw when there is no switches section.
141
142 2004-03-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
143
144         * Process.cs: support EnableRaisingEvents + Exited event.
145
146 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
147
148         * Process.cs: patch by Gert Driesen that fixes WaitForExit when the
149         timeout is int.MaxValue.
150
151 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
152
153         * Process.cs: added environment variables setting support and also
154         send useShellExecute to the runtime.
155
156         * ProcessStartInfo.cs: support EnvironmentVariables.  MS uses
157         StringDictionary, which turns keys into lowercase. We don't do that.
158
159 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
160
161         * Process.cs: ExitCode and ExitTime check that the process is finished.
162
163 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
164
165         * Process.cs: if there's an error when starting the process, the 'pid'
166         field contains the GetLastError code. Use that for the Win32Exception.
167
168 2003-12-06  Martin Baulig  <martin@ximian.com>
169
170         * DefaultTraceListener: Don't use `where' in variable names.
171
172 2003-11-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
173
174         * ICollectData.cs: Fixed signature
175
176 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
177
178         * ICollectData.cs: Added missing attribute
179
180 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
181
182         * SRDescriptionAttribute.cs: Moved to System directory
183
184 2003-07-21  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
185
186         * EventLog.cs: Implementation handling
187         * EventLogImpl.cs: Added, contains an platform independent empty implementation
188         for EventLog
189
190 2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
191
192         * AlphabeticalEnumConverter.cs: Added
193         * EventLogEntry.cs: Implemented
194         * EventLogPermissionEntryCollection.cs: Fixed signature and implementation of indexer
195         * EventLogTraceListener.cs: Fixed signature
196         * PerformanceCounter.cs: Added missing attribute
197         * PerformanceCounterType.cs: Added missing attribute
198         * SRDescriptionAttribute.cs: Added and implemented
199
200 2003-07-17  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
201
202         * CounterCreationData.cs:
203         * EventLog.cs:
204         * EventLogEntry.cs:
205         * PerformanceCounter.cs:
206         * Process.cs:
207         * ProcessModule.cs:
208         * ProcessStartInfo.cs:
209         * ProcessThread.cs: Reworked attributes based on the new Consts scheme
210
211 2003-07-14  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
212
213         * PerformanceCounterCategory.cs: Fixed signatures
214
215 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
216
217         * PerformanceCounter.cs: Implemented or implementation added
218
219 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
220
221         * DiagnosticsConfigurationHandler.cs: Removed a never used variable
222         * EventLog.cs: Small update to prevent a warning
223         * EventLogPermission.cs: Implemented or implementation added
224         * EventLogPermissionAttribute.cs: Implemented or implementation added
225         * EventLogPermissionEntry.cs: Implemented or implementation added
226         * EventLogPermissionEntryCollection.cs: Implemented or implementation added
227         * EventLogTraceListener.cs: Implemented or implementation added
228         * PerformanceCounterManager.cs: Implemented or implementation added
229         * PerformanceCounterInstaller.cs: Made internal
230         * PerformanceCounterCategory.cs: Implemented few members
231         * PerformanceCounterPermission.cs: Implemented or implementation added
232         * PerformanceCounterPermissionAttribute.cs: Implemented or implementation added
233         * PerformanceCounterPermissionEntry.cs: Implemented or implementation added
234         * PerformanceCounterPermissionEntryCollection.cs: Implemented or implementation added
235         
236 2003-07-07  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
237
238         * EventLog.cs: Removed unneccesary attribute according to corecompare
239         * EventLogEntry.cs: Removed unneccesary attribute according to corecompare
240         * Process.cs: Removed unneccesary attributes according to corecompare, added attribute
241         * ProcessModule.cs: Removed unneccesary attribute according to corecompare
242         * ProcessStartInfo.cs: Removed unneccesary attribute according to corecompare
243         * ProcessThread.cs: Removed unneccesary attribute according to corecompare, fixed signature
244
245 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
246
247         * InstanceDataCollectionCollection.cs: Corrected wrong signature
248         * EventLog.cs: Missing attributes added, redirected some class members
249         * EventLogEntry.cs: Missing attributes added
250         * EventLogInstaller.cs: Made internal
251         
252 2003-07-02  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
253
254         * CounterCreationData.cs: Added missing attributes
255         * CounterSample.cs: Implemented missing rest, fixed signature
256         * CounterSampleCalculator.cs: Added private constructor, redirected function
257         * Process.cs: Added attributes, added event mechanism
258         * ProcessModule.cs: Added missing attributes
259         * ProcessModuleCollection.cs: Redone using the already inherited-from ArrayList. Simplifies this a LOT
260         * ProcessStartInfo.cs: Added missing attributes, moved internal fields to the begining of the file, restyling
261         * ProcessThread.cs: Added missing attributes, added pseudo constructor
262         * ProcessThreadCollection.cs: Implemented
263         * PerformanceCounterPermission.cs: Fixed typo in class name
264         * PerformanceCounterPermissionAccess.cs: Added attributes, fixed wrong member
265         
266 2003-03-19  Dick Porter  <dick@ximian.com>
267
268         * Process.cs: Implement HasExited, fixes bug 39267
269
270 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
271
272         * Process.cs: throw an exception when the executable cannot be found.
273
274 2002-12-20  Jonathan Pryor <jonpryor@vt.edu>
275         * DiagnosticsConfigurationHandler.cs: 
276           - Don't assume that optional attributes are always present
277           - <assert/> can't have any child nodes
278           - Change in semantics: if the attribute isn't present,
279             GetAttribute() returns null, not "".  This allows us to
280             differentiate between an attribute not being present and an
281             attribute with an empty value.
282           - Translate exceptions if a TraceListener type is invalid
283
284 2002-12-19  Jonathan Pryor <jonpryor@vt.edu>
285         * TraceListenerCollection.cs: IndentLevel and IndentSize shouldn't be 
286           hardcoded; they should be set to whatever TraceImpl is using (which
287           in turn may have been set by the .config file, so we should get the
288           user-specified values in added listeners).
289         * TraceListener.cs: Make sure that indents are initially written.  This 
290           allows code that uses Trace.Indent() before a Trace.WriteLine() to be 
291           indented properly.
292         * TraceImpl.cs: provide a static constructor to explicitly specify the
293           ordering of initialization, in particular the ordering of
294           TraceImpl.Listeners and the reading of the .config file (by
295           accessing DiagnosticsConfiguration.Settings).  This (hopefully)
296           ensures that the Listeners collection is initialized before the
297           .config file is read in, as the DiagnosticsConfigurationHandler will
298           directly modify the listeners collection.
299           The DiagnosticsConfigurationHandler assumes this so that it can
300           <add/> and <remove/> trace listeners and set the logfile for the
301           DefaultTraceListener.
302
303
304 2002-12-18  Jonathan Pryor <jonpryor@vt.edu>
305         * BooleanSwitch.cs: Complete re-write.  It works now.
306         * DefaultTraceListener.cs:
307           - Use `const' strings, so I don't worry about copy/paste errors
308           - Give `AssertUiEnabled' an actual backing member
309         * DiagnosticsConfigurationHandler.cs: To avoid race conditions, let the
310           configuration handler set .config-specified properties on
311           DefaultTraceListener (AssertUiEnabled, LogFileName) and TraceImpl
312           (AutoFlush, IndentSize).
313         * Switch.cs: Near complete re-write.  Actually works, and is (should be)
314           comformant with .NET behavior.  Changed member names because they
315           were confusing me.  (Yes, that doesn't say much about my memory.)
316         * TextWriterTraceListener.cs: Append text to already existing files,
317           don't overwrite them.
318         * TraceImpl.cs:
319           - Added private destructor, to ensure no instances are created.
320           - Move members declarations to be closer to each other.
321         * TraceSwitch.cs: Complete re-write.  It works now.
322
323 2002-12-17  Jonathan Pryor <jonpryor@vt.edu>
324         * DiagnosticsConfigurationHandler.cs: Implement so that .config files
325         support <system.diagnostics> sections.
326
327 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
328
329         * DefaultTraceListener.cs: now OutputDebugStringW is called from an
330         internal call (update your runtime!). No more warnings in linux.
331
332 2002-10-31  Dick Porter  <dick@ximian.com>
333
334         * Process.cs: MonoIO methods now have an error parameter
335
336 2002-10-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
337
338         * DefaultTraceListener.cs: changed OutputDebugString to
339         OutputDebugStringW (no more warnings under windows). Also a few style
340         fixes.
341
342 2002-10-23  Dick Porter  <dick@ximian.com>
343
344         * Process.cs: Redirected standard input needs to have AutoFlush set
345
346 2002-09-27  Dick Porter  <dick@ximian.com>
347
348         * Process.cs: Implemented {get_,set_}{Min,Max}WorkingSet,
349         ProcessName, GetProcessById, GetProcesses, GetProcessesByName.
350         Pass the working directory to Start.  Pass the program and args in
351         one string to be used with the second arg of CreateProcess, so it
352         will search the path.
353
354 2002-09-19  Nick Drochak <ndrochak@gol.com>
355
356         * TraceImpl.cs: Remove debug prints
357
358 2002-09-19  Nick Drochak <ndrochak@gol.com>
359
360         * TraceListenerCollection.cs: Set Indet level and size to default 
361         values.  The values from TraceImpl might have been changed.
362
363 2002-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
364
365         * Process.cs:
366         * TextWriterTraceListener.cs: IDisposable fixes.
367
368 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
369
370         * Process.cs: class status based fixes.
371
372 2002-07-20  Dick Porter  <dick@ximian.com>
373
374         * Process.cs: Implement file handle redirection
375
376 2002-07-13  Jonathan Pryor <jonpryor@vt.edu>
377         * CounterCreationData.cs: Implemented
378         * CounterCreationDataCollection.cs: Implemented
379         * CounterSample.cs: Stubbed Out
380         * CounterSampleCalculator.cs: Stubbed Out
381         * InstanceData.cs: Implemented
382         * InstanceDataCollection.cs: Implemented
383         * InstanceDataCollectionCollection.cs: Implemented
384         * MonitoringDescriptionAttribute.cs: Implemented
385         * PerformanceCounter.cs: Stubbed Out
386         * PerformanceCounterCategory.cs: Stubbed Out
387         * PerformanceCounterInstaller.cs: Stubbed Out
388         * PerformanceCounterManager.cs: Stubbed Out
389         * PerformanceCounterPermission.cs: Stubbed Out
390         * PerformanceCounterPermissionAccess.cs: Implemented
391         * PerformanceCounterPermissionAttribute.cs: Stubbed Out
392         * PerformanceCounterPermissionEntry.cs: Stubbed Out
393         * PerformanceCounterPermissionEntryCollection.cs: Implemented
394         * PerformanceCounterType.cs: Implemented
395
396
397 2002-06-25  Dick Porter  <dick@ximian.com>
398
399         * Process.cs: Process forking and waiting, and some support functions
400
401         * ProcessStartInfo.cs: Implemented the bits needed for basic
402         Process forking
403
404         * ProcessModule.cs: Implemented
405
406         * ProcessModuleCollection.cs: Mostly implemented
407
408         * FileVersionInfo.cs: Implemented
409
410 2002-06-16  Jonathan Pryor <jonpryor@vt.edu>
411         * ICollectData.cs: Implemented
412         * TraceImpl.cs: Setting IndentLevel, IndentSize should change the
413                 corresponding properties on all current TraceListeners.
414                 Also, to answer the FIXME message: Yes, the properties in TraceListener
415                 need to be [ThreadStatic] as well.
416         * TraceListenerCollection.cs: When adding a TraceListener, the TraceListener
417                 should have its properties set to the current TraceImpl property values.
418         * TraceListener.cs: Make indentSize, lndentLevel [ThreadStatic].
419
420 2002-06-09  Jonathan Pryor <jonpryor@vt.edu>
421         * EntryWrittenEventArgs.cs: Implemented
422         * EntryWrittenEventHandler.cs: Implemented
423         * EventLog.cs: Stubbed out
424         * EventLogEntry.cs: Stubbed out
425         * EventLogEntryCOllection.cs: Implemented.
426         * EventLogEntryType.cs: Implemented
427         * EventLogInstaller.cs: Stubbed out
428         * EventLogPermission.cs: Stubbed out
429         * EventLogPermissionAccess.cs: Implemented
430         * EventLogPermissionAttribute.cs: Stubbed out
431         * EventLogPermissionEntry.cs: Stubbed out
432         * EventLogPermissionEntryCollection.cs: Stubbed out
433         * EventLogTraceListener.cs: Stubbed out
434
435 2002-05-29  Jonathan Pryor <jonpryor@vt.edu>
436   * DefaultTraceListener.cs: Implemented MONO_TRACE support
437
438 2002-05-27  Jonathan Pryor <jonpryor@vt.edu>
439   * Moved public API documentation for the following files to the
440     /mcs/docs/apidocs/xml/en/System.Diagnostics directory:
441     - Debug.cs
442     - DefaultTraceListener.cs
443     - DiagnosticsConfigurationHandler.cs
444     - Switch.cs
445     - TextWriterTraceListener.cs
446     - Trace.cs
447     - TraceLevel.cs
448     - TraceListener.cs
449     - TraceListenerCollection.cs
450     - TraceSwitch.cs
451
452 2002-04-10  Jonathan Pryor <jonpryor@vt.edu>
453
454         * TraceListenerCollection.cs: Corrected indexer property to provide the
455                 correct return value and implement the IList indexer property correctly.
456
457 2002-04-07  Jonathan Pryor <jonpryor@vt.edu>
458
459         * TraceListener.cs: Fix stack overflow bug
460         * DefaultTraceListener.cs: Implement log file support
461
462 2002-04-04  Dick Porter  <dick@ximian.com>
463
464         * ThreadWaitReason.cs:
465         * ThreadState.cs:
466         * ThreadPriorityLevel.cs:
467         * ProcessWindowStyle.cs:
468         * ProcessThreadCollection.cs
469         * ProcessThread.cs:
470         * ProcessStartInfo.cs:
471         * ProcessModuleCollection.cs: Stub out more classes needed for Process
472
473 2002-03-31  Dick Porter  <dick@ximian.com>
474
475         * Process.cs: 
476         * ProcessPriorityClass.cs: 
477         * ProcessModule.cs: 
478         * FileVersionInfo.cs: Stub out classes needed for Process
479
480 2002-03-08  Jonathan Pryor <jonpryor@vt.edu>
481
482         * Debug.cs: Clean up (lots of code can be shared with Trace.cs, which 
483                 is why TraceImpl.cs is introduced), "DEBUG" conditional support
484         * TraceListener.cs: Proper implementation of Dispose pattern;
485                 implementatino of non-abstract methods in terms of abstract methods
486         * TraceListenerCollection.cs: check 'object' types before adding
487         * TextWriterTraceListener.cs: properly implement Dispose pattern;
488                 handle NeedIndent and WriteIndent
489         * Trace.cs: new file; provides Trace functionality, "TRACE" conditional
490                 support
491         * DefaultTraceListener.cs: new file; the default trace listener
492
493 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
494         * TraceListenerCollection.cs: Remove Warnings.
495
496 2002-01-06  Ravi Pratap  <ravi@ximian.com>
497         * Switch.cs, TraceListenerCollection.cs : Decorate incomplete bits
498         with the MonoTODO attribute.
499
500 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
501         * Added Debug.cs to the build.
502
503 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
504         * Added preliminary TraceListenerCollection.cs to the build.
505
506 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
507         * Added TraceListener.cs, TextWriterTraceListener.cs, and
508         DefaultTraceListener.cs to the build and moved them into the
509         proper assembly.
510
511 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
512         * Added DiagnosticsConfigurationHandler.cs to the build.
513
514 2001-09-09  Nick Drochak <ndrochak@gol.com>
515         * BooleanSwitch.cs: Make this class use it's parent class's features.  Namely, use SwitchSetting
516         so that we can get OnSwitchSettingChanged() to fire for free.
517
518 2001-09-09  Nick Drochak <ndrochak@gol.com>
519         * ChangeLog: added this file
520         * Switch.cs: call OnSwitchSettingChanged() when the switch setting is, yes you gessed it, changed.