1 2005-02-22 Jonathan Pryor <jonpryor@vt.edu>
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.
11 2005-01-18 Jonathan Pryor <jonpryor@vt.edu>
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.
18 2005-01-18 Jonathan Pryor <jonpryor@vt.edu>
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
33 * Switch.cs: Leave the original switch value alone. If it isn't valid
34 (i.e. numeric), the DiagnosticsConfigurationHandler will catch it.
36 2005-01-17 Jonathan Pryor <jonpryor@vt.edu>
38 * DiagnosticsConfigurationHandler.cs: The /switch/add/@value attribute
39 isn't optional under .NET 1.1, so make sure it exists.
41 2005-01-13 Jonathan Pryor <jonpryor@vt.edu>
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.
51 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
53 * Process.cs: always pass the same arguments to the runtime.
55 2004-09-11 Sebastien Pouliot <sebastien@ximian.com>
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
66 * PerformanceCounterPermissionEntryCollection.cs: Added synchronization
67 of entries with the base permission class.
69 2004-09-10 Sebastien Pouliot <sebastien@ximian.com>
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.
84 2004-09-07 Dick Porter <dick@ximian.com>
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
94 2004-09-06 Dick Porter <dick@ximian.com>
96 * Process.cs: Make Dispose() actually dispose things.
98 2004-06-24 Atsushi Enomoto <atsushi@ximian.com>
100 * Process.cs : quick fix for UseShellExecute=false on windows. See
103 2004-06-17 Lluis Sanchez Gual <lluis@ximian.com>
105 * Process.cs: Added missing check in HasExited property.
107 2004-05-20 Gert Driesen (drieseng@users.sourceforge.net)
109 * EventLogPermissionAttribute.cs:
110 * PerformanceCounterPermissionAttribute.cs: adjust AllowMultiple
111 and Inherited to match .NET
113 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
115 * Process.cs: separate the command and the arguments when calling
118 2004-05-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
120 * Process.cs: redirecting I/O is not permitted if UseShellExecute is
121 true. Also throw if FileName is null.
123 2004-04-06 Lluis Sanchez Gual <lluis@ximian.com>
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
130 * TextWriterTraceListener.cs: In Write*, do nothing if no writer was
133 2004-03-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
135 * Process.cs: use the ISynchronizeInvoke object to invoke the event.
136 Implemented Close, CloseMainWindow and Kill.
138 2004-03-23 Ben Maurer <bmaurer@users.sourceforge.net>
140 * Switch.cs: Don't throw when there is no switches section.
142 2004-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
144 * Process.cs: support EnableRaisingEvents + Exited event.
146 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
148 * Process.cs: patch by Gert Driesen that fixes WaitForExit when the
149 timeout is int.MaxValue.
151 2004-03-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
153 * Process.cs: added environment variables setting support and also
154 send useShellExecute to the runtime.
156 * ProcessStartInfo.cs: support EnvironmentVariables. MS uses
157 StringDictionary, which turns keys into lowercase. We don't do that.
159 2004-02-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
161 * Process.cs: ExitCode and ExitTime check that the process is finished.
163 2003-12-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
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.
168 2003-12-06 Martin Baulig <martin@ximian.com>
170 * DefaultTraceListener: Don't use `where' in variable names.
172 2003-11-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
174 * ICollectData.cs: Fixed signature
176 2003-11-12 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
178 * ICollectData.cs: Added missing attribute
180 2003-07-27 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
182 * SRDescriptionAttribute.cs: Moved to System directory
184 2003-07-21 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
186 * EventLog.cs: Implementation handling
187 * EventLogImpl.cs: Added, contains an platform independent empty implementation
190 2003-07-18 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
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
200 2003-07-17 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
202 * CounterCreationData.cs:
205 * PerformanceCounter.cs:
208 * ProcessStartInfo.cs:
209 * ProcessThread.cs: Reworked attributes based on the new Consts scheme
211 2003-07-14 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
213 * PerformanceCounterCategory.cs: Fixed signatures
215 2003-07-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
217 * PerformanceCounter.cs: Implemented or implementation added
219 2003-07-13 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
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
236 2003-07-07 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
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
245 2003-07-05 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
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
252 2003-07-02 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
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
266 2003-03-19 Dick Porter <dick@ximian.com>
268 * Process.cs: Implement HasExited, fixes bug 39267
270 2003-03-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
272 * Process.cs: throw an exception when the executable cannot be found.
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
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
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.
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.
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.
323 2002-12-17 Jonathan Pryor <jonpryor@vt.edu>
324 * DiagnosticsConfigurationHandler.cs: Implement so that .config files
325 support <system.diagnostics> sections.
327 2002-12-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
329 * DefaultTraceListener.cs: now OutputDebugStringW is called from an
330 internal call (update your runtime!). No more warnings in linux.
332 2002-10-31 Dick Porter <dick@ximian.com>
334 * Process.cs: MonoIO methods now have an error parameter
336 2002-10-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
338 * DefaultTraceListener.cs: changed OutputDebugString to
339 OutputDebugStringW (no more warnings under windows). Also a few style
342 2002-10-23 Dick Porter <dick@ximian.com>
344 * Process.cs: Redirected standard input needs to have AutoFlush set
346 2002-09-27 Dick Porter <dick@ximian.com>
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.
354 2002-09-19 Nick Drochak <ndrochak@gol.com>
356 * TraceImpl.cs: Remove debug prints
358 2002-09-19 Nick Drochak <ndrochak@gol.com>
360 * TraceListenerCollection.cs: Set Indet level and size to default
361 values. The values from TraceImpl might have been changed.
363 2002-08-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
366 * TextWriterTraceListener.cs: IDisposable fixes.
368 2002-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
370 * Process.cs: class status based fixes.
372 2002-07-20 Dick Porter <dick@ximian.com>
374 * Process.cs: Implement file handle redirection
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
397 2002-06-25 Dick Porter <dick@ximian.com>
399 * Process.cs: Process forking and waiting, and some support functions
401 * ProcessStartInfo.cs: Implemented the bits needed for basic
404 * ProcessModule.cs: Implemented
406 * ProcessModuleCollection.cs: Mostly implemented
408 * FileVersionInfo.cs: Implemented
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].
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
435 2002-05-29 Jonathan Pryor <jonpryor@vt.edu>
436 * DefaultTraceListener.cs: Implemented MONO_TRACE support
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:
442 - DefaultTraceListener.cs
443 - DiagnosticsConfigurationHandler.cs
445 - TextWriterTraceListener.cs
449 - TraceListenerCollection.cs
452 2002-04-10 Jonathan Pryor <jonpryor@vt.edu>
454 * TraceListenerCollection.cs: Corrected indexer property to provide the
455 correct return value and implement the IList indexer property correctly.
457 2002-04-07 Jonathan Pryor <jonpryor@vt.edu>
459 * TraceListener.cs: Fix stack overflow bug
460 * DefaultTraceListener.cs: Implement log file support
462 2002-04-04 Dick Porter <dick@ximian.com>
464 * ThreadWaitReason.cs:
466 * ThreadPriorityLevel.cs:
467 * ProcessWindowStyle.cs:
468 * ProcessThreadCollection.cs
470 * ProcessStartInfo.cs:
471 * ProcessModuleCollection.cs: Stub out more classes needed for Process
473 2002-03-31 Dick Porter <dick@ximian.com>
476 * ProcessPriorityClass.cs:
478 * FileVersionInfo.cs: Stub out classes needed for Process
480 2002-03-08 Jonathan Pryor <jonpryor@vt.edu>
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
491 * DefaultTraceListener.cs: new file; the default trace listener
493 2002-01-17 Miguel de Icaza <miguel@ximian.com>
494 * TraceListenerCollection.cs: Remove Warnings.
496 2002-01-06 Ravi Pratap <ravi@ximian.com>
497 * Switch.cs, TraceListenerCollection.cs : Decorate incomplete bits
498 with the MonoTODO attribute.
500 2002-01-04 John R. Hicks <angryjohn69@nc.rr.com>
501 * Added Debug.cs to the build.
503 2002-01-04 John R. Hicks <angryjohn69@nc.rr.com>
504 * Added preliminary TraceListenerCollection.cs to the build.
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
511 2002-01-04 John R. Hicks <angryjohn69@nc.rr.com>
512 * Added DiagnosticsConfigurationHandler.cs to the build.
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.
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.