pipelines fixed, job messaging better for notification & for builtin_jobs. still gotta fix cat (See previous commits msgs)
This commit is contained in:
parent
204d5b9795
commit
153b9aec79
10 changed files with 20 additions and 54 deletions
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/11/27 20:29:56 by jhalford #+# #+# */
|
/* Created: 2016/11/27 20:29:56 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/09 15:57:08 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:22:39 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/12/10 16:55:09 by jhalford #+# #+# */
|
/* Created: 2016/12/10 16:55:09 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/09 14:05:43 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:23:37 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
@ -52,7 +52,7 @@ void job_update_rank(void);
|
||||||
|
|
||||||
int do_job_notification(void);
|
int do_job_notification(void);
|
||||||
void job_notify_new(t_job *job);
|
void job_notify_new(t_job *job);
|
||||||
void job_notify_change(int id, int status);
|
void job_notify_change(int id);
|
||||||
void job_format(t_job *j, int rank[2], int opts);
|
void job_format(t_job *j, int rank[2], int opts);
|
||||||
void job_format_head(t_job *j, int rank[2]);
|
void job_format_head(t_job *j, int rank[2]);
|
||||||
|
|
||||||
|
|
@ -71,7 +71,6 @@ void job_kill_all(void);
|
||||||
int put_job_in_foreground(t_job *job, int cont);
|
int put_job_in_foreground(t_job *job, int cont);
|
||||||
int put_job_in_background(t_job *job, int cont);
|
int put_job_in_background(t_job *job, int cont);
|
||||||
|
|
||||||
|
|
||||||
int job_cmp_pid(t_job *job, pid_t *pid);
|
int job_cmp_pid(t_job *job, pid_t *pid);
|
||||||
int job_cmp_id(t_job *job, int *id);
|
int job_cmp_id(t_job *job, int *id);
|
||||||
void job_getrank(int (*rank)[2]);
|
void job_getrank(int (*rank)[2]);
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/11/28 14:28:41 by jhalford #+# #+# */
|
/* Created: 2016/11/28 14:28:41 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/08 16:00:21 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:25:06 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/11/27 21:13:23 by jhalford #+# #+# */
|
/* Created: 2016/11/27 21:13:23 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/09 15:56:40 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:19:38 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
@ -39,7 +39,7 @@ int exec_pipe(t_btree **ast)
|
||||||
if (start)
|
if (start)
|
||||||
p->attributes |= PROCESS_PIPESTART;
|
p->attributes |= PROCESS_PIPESTART;
|
||||||
|
|
||||||
close(p->fdin);
|
close(fds[PIPE_READ]);
|
||||||
p->fdin = STDIN;
|
p->fdin = STDIN;
|
||||||
btree_delone(ast, &ast_free);
|
btree_delone(ast, &ast_free);
|
||||||
return (0);
|
return (0);
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/12/15 17:43:01 by jhalford #+# #+# */
|
/* Created: 2016/12/15 17:43:01 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/09 14:05:27 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:20:09 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/12/15 13:01:19 by jhalford #+# #+# */
|
/* Created: 2016/12/15 13:01:19 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/08 14:00:23 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:24:22 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
@ -26,17 +26,17 @@ int do_job_notification(void)
|
||||||
while (jlist)
|
while (jlist)
|
||||||
{
|
{
|
||||||
j = jlist->content;
|
j = jlist->content;
|
||||||
DG("checking job [%i]", j->id);
|
DG("checking [%i]", j->id);
|
||||||
if (job_is_completed(j->id))
|
if (job_is_completed(j->id))
|
||||||
{
|
{
|
||||||
ret = 1;
|
ret = 1;
|
||||||
job_notify_change(j->id, 0);
|
job_notify_change(j->id);
|
||||||
job_remove(j->id);
|
job_remove(j->id);
|
||||||
}
|
}
|
||||||
else if (job_is_stopped(j->id) && !(j->attributes & JOB_NOTIFIED))
|
else if (job_is_stopped(j->id) && !(j->attributes & JOB_NOTIFIED))
|
||||||
{
|
{
|
||||||
ret = 1;
|
ret = 1;
|
||||||
job_notify_change(j->id, -1);
|
job_notify_change(j->id);
|
||||||
j->attributes |= JOB_NOTIFIED;
|
j->attributes |= JOB_NOTIFIED;
|
||||||
}
|
}
|
||||||
jlist = jlist->next;
|
jlist = jlist->next;
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2017/01/08 15:36:56 by jhalford #+# #+# */
|
/* Created: 2017/01/08 15:36:56 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/08 15:44:07 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:25:25 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,53 +6,20 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/12/12 15:04:03 by jhalford #+# #+# */
|
/* Created: 2016/12/12 15:04:03 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/09 12:39:33 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:24:32 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "job_control.h"
|
#include "job_control.h"
|
||||||
|
|
||||||
void job_notify_change(int id, int status)
|
void job_notify_change(int id)
|
||||||
{
|
{
|
||||||
t_job *job;
|
t_job *job;
|
||||||
t_jobc *jobc;
|
t_jobc *jobc;
|
||||||
t_list *plist;
|
int rank[2];
|
||||||
t_process *p;
|
|
||||||
char rank;
|
|
||||||
|
|
||||||
rank = ' ';
|
|
||||||
jobc = &data_singleton()->jobc;
|
jobc = &data_singleton()->jobc;
|
||||||
job = jobc->first_job->content;
|
|
||||||
if (id == job->id)
|
|
||||||
rank = '+';
|
|
||||||
else if (jobc->first_job->next)
|
|
||||||
{
|
|
||||||
job = jobc->first_job->next->content;
|
|
||||||
if (id == job->id)
|
|
||||||
rank = '-';
|
|
||||||
}
|
|
||||||
ft_printf("{mag}[%i] %c ", id, rank);
|
|
||||||
job = ft_lst_find(jobc->first_job, &id, job_cmp_id)->content;
|
job = ft_lst_find(jobc->first_job, &id, job_cmp_id)->content;
|
||||||
if (status == -1)
|
job_getrank(&rank);
|
||||||
ft_printf("{red}stopped{mag}");
|
job_format(job, rank, 0);
|
||||||
else
|
|
||||||
{
|
|
||||||
plist = job->first_process;
|
|
||||||
p = ft_lstlast(job->first_process)->content;
|
|
||||||
if (p->status == 0)
|
|
||||||
ft_printf("{gre}done{mag}");
|
|
||||||
else
|
|
||||||
ft_printf("{red}exit %i{mag}", p->status);
|
|
||||||
}
|
|
||||||
ft_printf("\t ");
|
|
||||||
plist = job->first_process;
|
|
||||||
while (plist)
|
|
||||||
{
|
|
||||||
p = plist->content;
|
|
||||||
ft_sstrprint(p->av, ' ');
|
|
||||||
if (plist->next)
|
|
||||||
ft_printf(" |");
|
|
||||||
plist = plist->next;
|
|
||||||
}
|
|
||||||
ft_printf("{eoc}\n");
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/12/10 15:14:47 by jhalford #+# #+# */
|
/* Created: 2016/12/10 15:14:47 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/09 15:59:05 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:16:20 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2016/12/12 17:37:04 by jhalford #+# #+# */
|
/* Created: 2016/12/12 17:37:04 by jhalford #+# #+# */
|
||||||
/* Updated: 2017/01/08 15:55:39 by jhalford ### ########.fr */
|
/* Updated: 2017/01/09 16:25:04 by jhalford ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
|
@ -22,6 +22,6 @@ void shell_exit(void)
|
||||||
/* DG("cleanup. char * UP at %p", UP); */
|
/* DG("cleanup. char * UP at %p", UP); */
|
||||||
/* DG("cleanup. char * BC at %p", BC); */
|
/* DG("cleanup. char * BC at %p", BC); */
|
||||||
data_exit();
|
data_exit();
|
||||||
/* job_kill_all(); */
|
job_kill_all();
|
||||||
tcsetattr(0, TCSANOW, &data_singleton()->jobc.shell_tmodes);
|
tcsetattr(0, TCSANOW, &data_singleton()->jobc.shell_tmodes);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue