Home | History | Annotate | Download | only in subproc

Lines Matching refs:pproc

60 process_adjust_wait_state(sub_process* pproc)
68 if (proc_array[i]->pid == pproc->pid)
113 sub_process* pproc = proc_array[which];
114 process_adjust_wait_state(pproc);
115 return pproc;
126 sub_process* pproc = (sub_process*) proc;
127 pproc->signal = signal;
128 return (TerminateProcess((HANDLE) pproc->pid, signal));
178 sub_process* pproc = process_wait_for_any_private();
180 if (!pproc)
187 (void) process_file_io(pproc);
188 return ((HANDLE) pproc);
257 sub_process *pproc;
267 pproc = malloc(sizeof(*pproc));
268 memset(pproc, 0, sizeof(*pproc));
277 pproc->last_err = GetLastError();
278 pproc->lerrno = E_SCALL;
279 return((HANDLE)pproc);
293 pproc->last_err = GetLastError();
294 pproc->lerrno = E_SCALL;
295 return((HANDLE)pproc);
308 pproc->last_err = GetLastError();
309 pproc->lerrno = E_SCALL;
310 return((HANDLE)pproc);
312 pproc->sv_stdin[0] = (int) stdin_pipes[0];
313 pproc->sv_stdin[1] = (int) stdin_pipes[1];
314 pproc->sv_stdout[0] = (int) stdout_pipes[0];
315 pproc->sv_stdout[1] = (int) stdout_pipes[1];
316 pproc->sv_stderr[0] = (int) stderr_pipes[0];
317 pproc->sv_stderr[1] = (int) stderr_pipes[1];
319 pproc->using_pipes = 1;
321 pproc->lerrno = 0;
323 return((HANDLE)pproc);
330 sub_process *pproc;
332 pproc = malloc(sizeof(*pproc));
333 memset(pproc, 0, sizeof(*pproc));
339 pproc->sv_stdin[1] = (int) stdinh;
340 pproc->sv_stdout[1] = (int) stdouth;
341 pproc->sv_stderr[1] = (int) stderrh;
343 pproc->last_err = pproc->lerrno = 0;
345 return((HANDLE)pproc);
415 sub_process *pproc = (sub_process *)proc;
454 pproc->last_err = GetLastError();
455 pproc->lerrno = E_IO;
503 pproc->last_err = 0;
504 pproc->lerrno = E_NO_MEM;
510 pproc->last_err = 0;
511 pproc->lerrno = E_NO_MEM;
532 startInfo.hStdInput = (HANDLE)pproc->sv_stdin[1];
533 startInfo.hStdOutput = (HANDLE)pproc->sv_stdout[1];
534 startInfo.hStdError = (HANDLE)pproc->sv_stderr[1];
555 pproc->last_err = GetLastError();
556 pproc->lerrno = E_FORK;
565 pproc->pid = (int)procInfo.hProcess;
570 CloseHandle((HANDLE)pproc->sv_stdin[1]);
571 CloseHandle((HANDLE)pproc->sv_stdout[1]);
572 CloseHandle((HANDLE)pproc->sv_stderr[1]);
573 pproc->sv_stdin[1] = 0;
574 pproc->sv_stdout[1] = 0;
575 pproc->sv_stderr[1] = 0;
579 pproc->lerrno=0;
586 proc_stdin_thread(sub_process *pproc)
590 if (WriteFile( (HANDLE) pproc->sv_stdin[0], pproc->inp, pproc->incnt,
595 if (in_done < pproc->incnt) {
596 pproc->incnt -= in_done;
597 pproc->inp += in_done;
606 proc_stdout_thread(sub_process *pproc)
611 pproc->outp = malloc(bufsize);
612 if (pproc->outp == NULL)
614 pproc->outcnt = 0;
617 if (ReadFile( (HANDLE)pproc->sv_stdout[0], &c, 1, &nread, NULL)
624 if (pproc->outcnt + nread > bufsize) {
626 pproc->outp = realloc(pproc->outp, bufsize);
627 if (pproc->outp == NULL) {
628 pproc->outcnt = 0;
632 pproc->outp[pproc->outcnt++] = c;
638 proc_stderr_thread(sub_process *pproc)
643 pproc->errp = malloc(bufsize);
644 if (pproc->errp == NULL)
646 pproc->errcnt = 0;
649 if (ReadFile( (HANDLE)pproc->sv_stderr[0], &c, 1, &nread, NULL) == FALSE) {
655 if (pproc->errcnt + nread > bufsize) {
657 pproc->errp = realloc(pproc->errp, bufsize);
658 if (pproc->errp == NULL) {
659 pproc->errcnt = 0;
663 pproc->errp[pproc->errcnt++] = c;
684 sub_process *pproc = (sub_process *)proc;
686 HANDLE childhand = (HANDLE) pproc->pid;
699 pproc->inp = stdin_data;
700 pproc->incnt = stdin_data_len;
701 if (!pproc->inp) {
703 CloseHandle((HANDLE)pproc->sv_stdin[0]);
704 pproc->sv_stdin[0] = 0;
708 pproc, 0, &dwStdin);
710 pproc->last_err = GetLastError();
711 pproc->lerrno = E_SCALL;
720 (unsigned (__stdcall *) (void *))proc_stdout_thread, pproc, 0,
723 (unsigned (__stdcall *) (void *))proc_stderr_thread, pproc, 0,
728 pproc->last_err = GetLastError();
729 pproc->lerrno = E_SCALL;
760 pproc->last_err = GetLastError();
761 pproc->lerrno = E_SCALL;
768 CloseHandle((HANDLE)pproc->sv_stdin[0]);
769 pproc->sv_stdin[0] = 0;
776 CloseHandle((HANDLE)pproc->sv_stdout[0]);
777 pproc->sv_stdout[0] = 0;
784 CloseHandle((HANDLE)pproc->sv_stderr[0]);
785 pproc->sv_stderr[0] = 0;
795 pproc->signal = SIGINT;
797 pproc->exit_code = ierr;
800 pproc->last_err = GetLastError();
801 pproc->lerrno = E_SCALL;
809 pproc->last_err = 0;
810 pproc->lerrno = E_FAIL;
823 if (pproc->lerrno)
843 sub_process *pproc;
850 pproc = process_wait_for_any_private();
852 pproc = (sub_process *)proc;
855 if (!pproc)
858 childhand = (HANDLE) pproc->pid;
865 if (pproc->sv_stdin[0]) {
866 CloseHandle((HANDLE)pproc->sv_stdin[0]);
867 pproc->sv_stdin[0] = 0;
869 if (pproc->sv_stdout[0]) {
870 CloseHandle((HANDLE)pproc->sv_stdout[0]);
871 pproc->sv_stdout[0] = 0;
873 if (pproc->sv_stderr[0]) {
874 CloseHandle((HANDLE)pproc->sv_stderr[0]);
875 pproc->sv_stderr[0] = 0;
886 pproc->last_err = GetLastError();
887 pproc->lerrno = E_SCALL;
893 pproc->signal = SIGINT;
895 pproc->exit_code = ierr;
898 pproc->last_err = GetLastError();
899 pproc->lerrno = E_SCALL;
903 if (pproc->lerrno)
918 sub_process *pproc = (sub_process *)proc;
921 if (pproc->using_pipes) {
923 if ((HANDLE)pproc->sv_stdin[i])
924 CloseHandle((HANDLE)pproc->sv_stdin[i]);
925 if ((HANDLE)pproc->sv_stdout[i])
926 CloseHandle((HANDLE)pproc->sv_stdout[i]);
927 if ((HANDLE)pproc->sv_stderr[i])
928 CloseHandle((HANDLE)pproc->sv_stderr[i]);
931 if ((HANDLE)pproc->pid)
932 CloseHandle((HANDLE)pproc->pid);
934 free(pproc);