Function: delete-process
delete-process is a function defined in process.c.
Signature
(delete-process PROCESS)
Documentation
Delete PROCESS: kill it and forget about it immediately.
PROCESS may be a process, a buffer, the name of a process or buffer, or nil, indicating the current buffer's process.
Other relevant functions are documented in the process group.
Probably introduced at or before Emacs version 22.1.
Shortdoc
;; process
(delete-process process)
Source Code
// Defined in /usr/src/emacs/src/process.c
{
register struct Lisp_Process *p;
process = get_process (process);
p = XPROCESS (process);
#ifdef HAVE_GETADDRINFO_A
if (p->dns_request)
{
/* Cancel the request. Unless shutting down, wait until
completion. Free the request if completely canceled. */
bool canceled = gai_cancel (p->dns_request) != EAI_NOTCANCELED;
if (!canceled && !inhibit_sentinels)
{
struct gaicb const *req = p->dns_request;
while (gai_suspend (&req, 1, NULL) != 0)
continue;
canceled = true;
}
if (canceled)
free_dns_request (process);
}
#endif
p->raw_status_new = 0;
if (NETCONN1_P (p) || SERIALCONN1_P (p) || PIPECONN1_P (p))
{
pset_status (p, list2 (Qexit, make_fixnum (0)));
p->tick = ++process_tick;
status_notify (p, NULL);
redisplay_preserve_echo_area (13);
}
else
{
if (p->alive)
record_kill_process (p, Qnil);
if (p->infd >= 0)
{
/* Update P's status, since record_kill_process will make the
SIGCHLD handler update deleted_pid_list, not *P. */
Lisp_Object symbol;
if (p->raw_status_new)
update_status (p);
symbol = CONSP (p->status) ? XCAR (p->status) : p->status;
if (! (EQ (symbol, Qsignal) || EQ (symbol, Qexit)))
pset_status (p, list2 (Qsignal, make_fixnum (SIGKILL)));
p->tick = ++process_tick;
status_notify (p, NULL);
redisplay_preserve_echo_area (13);
}
}
remove_process (process);
return Qnil;
}