Author: robertj
Date: 2007-08-23 02:17:06 -0400 (Thu, 23 Aug 2007)
New Revision: 84679
Modified:
trunk/mcs/class/System/System.Diagnostics/ChangeLog
trunk/mcs/class/System/System.Diagnostics/Process.cs
Log:
2007-08-23 Robert Jordan <[EMAIL PROTECTED]>
* Process.cs: implement PriorityClass. Fixes #81756.
Modified: trunk/mcs/class/System/System.Diagnostics/ChangeLog
===================================================================
--- trunk/mcs/class/System/System.Diagnostics/ChangeLog 2007-08-23 06:13:25 UTC
(rev 84678)
+++ trunk/mcs/class/System/System.Diagnostics/ChangeLog 2007-08-23 06:17:06 UTC
(rev 84679)
@@ -1,4 +1,7 @@
+2007-08-23 Robert Jordan <[EMAIL PROTECTED]>
+ * Process.cs: implement PriorityClass. Fixes #81756.
+
Mon Aug 20 12:41:09 CEST 2007 Paolo Molaro <[EMAIL PROTECTED]>
* Process.cs: implemented icall for system/user times.
Modified: trunk/mcs/class/System/System.Diagnostics/Process.cs
===================================================================
--- trunk/mcs/class/System/System.Diagnostics/Process.cs 2007-08-23
06:13:25 UTC (rev 84678)
+++ trunk/mcs/class/System/System.Diagnostics/Process.cs 2007-08-23
06:17:06 UTC (rev 84679)
@@ -480,17 +480,34 @@
}
}
- [MonoTODO]
+ [MonoLimitation ("Under Unix, only root is allowed to raise the
priority.")]
[DesignerSerializationVisibility
(DesignerSerializationVisibility.Hidden)]
[MonitoringDescription ("The relative process priority.")]
public ProcessPriorityClass PriorityClass {
get {
- return(ProcessPriorityClass.Normal);
+ int error;
+ int prio = GetPriorityClass (process_handle,
out error);
+ if (prio == 0)
+ throw new Win32Exception (error);
+ return (ProcessPriorityClass) prio;
}
set {
+ // LAMESPEC: not documented on MSDN for NET_1_1
+ if (!Enum.IsDefined (typeof
(ProcessPriorityClass), value))
+ throw new InvalidEnumArgumentException
();
+
+ int error;
+ if (!SetPriorityClass (process_handle, (int)
value, out error))
+ throw new Win32Exception (error);
}
}
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ static extern int GetPriorityClass (IntPtr handle, out int
error);
+
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ static extern bool SetPriorityClass (IntPtr handle, int
priority, out int error);
+
[MonoTODO]
[DesignerSerializationVisibility
(DesignerSerializationVisibility.Hidden)]
[MonitoringDescription ("The amount of memory exclusively used
by this process.")]
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches