else
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
"Failed to write into control pipe , errno is %d\n", errno);
+#if WINDOWS
+ res = 0;
+ TerminateProcess (proc->handle, 0);
+#else
res = PLIBC_KILL (proc->pid, sig);
+#endif
}
else
{
- struct GNUNET_NETWORK_FDSet *rfds;
- struct GNUNET_NETWORK_FDSet *efds;
-
- rfds = GNUNET_NETWORK_fdset_create ();
- efds = GNUNET_NETWORK_fdset_create ();
-
- GNUNET_NETWORK_fdset_handle_set (rfds, proc->control_pipe);
- GNUNET_NETWORK_fdset_handle_set (efds, proc->control_pipe);
-
- read_next:
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Wrote control code into control pipe, now waiting\n");
-
- ret = GNUNET_NETWORK_socket_select (rfds, NULL, efds,
- GNUNET_TIME_relative_multiply (GNUNET_TIME_relative_get_unit (),
- 5000));
-
- if (ret < 1 || GNUNET_NETWORK_fdset_handle_isset (efds,
- proc->control_pipe))
- {
- /* Just to be sure */
- PLIBC_KILL (proc->pid, sig);
- res = 0;
- }
- else
- {
- if (GNUNET_DISK_file_read (proc->control_pipe, &ret,
- sizeof(ret)) != GNUNET_OK)
- res = PLIBC_KILL (proc->pid, sig);
-
- /* Child signaled shutdown is in progress */
- goto read_next;
- }
- }
-
- return res;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Wrote control code into control pipe, now waiting\n");
+ WaitForSingleObject (proc->handle, 5000);
+#if WINDOWS
+ TerminateProcess (proc->handle, 0);
+#else
+ PLIBC_KILL (proc->pid, sig);
+#endif
+ res = 0;
+ }
+ return res;
#else
return kill (proc->pid, sig);
#endif