#endif
set_descriptor_non_blocking (inchannel);
+ set_descriptor_non_blocking (outchannel);
/* Record this as an active process, with its channels.
As a result, child_setup will close Emacs's side of the pipes. */
int xforkin = forkin;
int xforkout = forkout;
+ /* Checking for quit in the child is bad because that will
+ cause I/O, and that, in turn, can confuse the X connection. */
+ begin_dont_check_for_quit();
+
/* Disconnect the current controlling terminal, pursuant to
making the pty be the controlling terminal of the process.
Also put us in our own process group. */
/* #### There is controversy over whether this might cause fd leakage */
/* my tests say no. -slb */
XLSTREAM (p->pipe_outstream)->flags &= ~LSTREAM_FL_IS_OPEN;
+#ifdef FILE_CODING
+ XLSTREAM (p->coding_outstream)->flags &= ~LSTREAM_FL_IS_OPEN;
+#endif
p->status_symbol = Qexit;
p->exit_code = 256; /* #### SIGPIPE ??? */
p->core_dumped = 0;
p->tick++;
process_tick++;
- deactivate_process (*((Lisp_Object *) (&vol_proc)));
+ deactivate_process (vol_proc);
invalid_operation ("SIGPIPE raised on process; closed it", p->name);
}