+2008-11-13 Bill Holmes <billholmes54@gmail.com>
+
+ * wait.h : Adding method declaration for WaitForInputIdle.
+
+ * wait.c : Adding implementation for WaitForInputIdle.
+
+ Code is contributed under MIT/X11 license.
Fri Oct 17 15:23:00 CEST 2008 Paolo Molaro <lupus@ximian.com>
{
return WaitForMultipleObjectsEx(numobjects, handles, waitall, timeout, FALSE);
}
+
+/**
+ * WaitForInputIdle:
+ * @handle: a handle to the process to wait for
+ * @timeout: the maximum time in milliseconds to wait for
+ *
+ * This function returns when either @handle process is waiting
+ * for input, or @timeout ms elapses. If @timeout is zero, the
+ * process state is tested and the function returns immediately.
+ * If @timeout is %INFINITE, the function waits forever.
+ *
+ * Return value: 0 - @handle process is waiting for input.
+ * %WAIT_TIMEOUT - The @timeout interval elapsed and
+ * @handle process is not waiting for input. %WAIT_FAILED - an error
+ * occurred.
+ */
+guint32 WaitForInputIdle(gpointer handle, guint32 timeout)
+{
+ /*TODO: Not implemented*/
+ return WAIT_TIMEOUT;
+}
+
gboolean waitall, guint32 timeout);
extern guint32 WaitForMultipleObjectsEx(guint32 numobjects, gpointer *handles,
gboolean waitall, guint32 timeout, gboolean alertable);
+extern guint32 WaitForInputIdle(gpointer handle, guint32 timeout);
G_END_DECLS
#endif /* _WAPI_WAIT_H_ */
+2008-11-13 Bill Holmes <billholmes54@gmail.com>
+
+ * process.h : Adding method declaration for
+ ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
+
+ * process.c : Adding implementation for
+ ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
+
+ * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
+ to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
+
+ Code is contributed under MIT/X11 license.
+
2008-11-10 Rodrigo Kumpera <rkumpera@novell.com>
* appdomain.c (unload_thread_main): Clean up threadpool by
ICALL(PROCESS_14, "StartTime_internal(intptr)", ves_icall_System_Diagnostics_Process_StartTime_internal)
ICALL(PROCESS_14M, "Times", ves_icall_System_Diagnostics_Process_Times)
ICALL(PROCESS_15, "WaitForExit_internal(intptr,int)", ves_icall_System_Diagnostics_Process_WaitForExit_internal)
+ICALL(PROCESS_16, "WaitForInputIdle_internal(intptr,int)", ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal)
ICALL_TYPE (PROCESSHANDLE, "System.Diagnostics.Process/ProcessWaitHandle", PROCESSHANDLE_1)
ICALL (PROCESSHANDLE_1, "ProcessHandle_close(intptr)", ves_icall_System_Diagnostics_Process_ProcessHandle_close)
}
}
+MonoBoolean ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal (MonoObject *this, HANDLE process, gint32 ms)
+{
+ guint32 ret;
+
+ MONO_ARCH_SAVE_REGS;
+
+ if(ms<0) {
+ /* Wait forever */
+ ret=WaitForInputIdle (process, INFINITE);
+ } else {
+ ret=WaitForInputIdle (process, ms);
+ }
+
+ return (ret) ? FALSE : TRUE;
+}
+
gint64 ves_icall_System_Diagnostics_Process_ExitTime_internal (HANDLE process)
{
gboolean ret;
MonoBoolean ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoProcessStartInfo *proc_start_info, MonoProcInfo *process_handle) MONO_INTERNAL;
MonoBoolean ves_icall_System_Diagnostics_Process_CreateProcess_internal (MonoProcessStartInfo *proc_start_info, HANDLE stdin_handle, HANDLE stdout_handle, HANDLE stderr_handle, MonoProcInfo *process_handle) MONO_INTERNAL;
MonoBoolean ves_icall_System_Diagnostics_Process_WaitForExit_internal (MonoObject *this, HANDLE process, gint32 ms) MONO_INTERNAL;
+MonoBoolean ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal (MonoObject *this, HANDLE process, gint32 ms) MONO_INTERNAL;
gint64 ves_icall_System_Diagnostics_Process_ExitTime_internal (HANDLE process) MONO_INTERNAL;
gint64 ves_icall_System_Diagnostics_Process_StartTime_internal (HANDLE process) MONO_INTERNAL;
gint32 ves_icall_System_Diagnostics_Process_ExitCode_internal (HANDLE process) MONO_INTERNAL;