Browse Source

Unfinished changes

Serj Kalichev 2 years ago
parent
commit
ff403eefef
3 changed files with 10 additions and 10 deletions
  1. 0 3
      klish/kcontext.h
  2. 3 7
      klish/ksession/kcontext.c
  3. 7 0
      klish/ksession/kexec.c

+ 0 - 3
klish/kcontext.h

@@ -25,9 +25,6 @@ FAUX_HIDDEN bool_t kcontext_set_plugin(kcontext_t *context, kplugin_t *plugin);
 // Sym
 ksym_t *kcontext_sym(const kcontext_t *context);
 FAUX_HIDDEN bool_t kcontext_set_sym(kcontext_t *context, ksym_t *sym);
-// Action
-kaction_t *kcontext_action(const kcontext_t *context);
-FAUX_HIDDEN bool_t kcontext_set_action(kcontext_t *context, kaction_t *action);
 // Command
 kpargv_t *kcontext_pargv(const kcontext_t *context);
 FAUX_HIDDEN bool_t kcontext_set_pargv(kcontext_t *context, kpargv_t *pargv);

+ 3 - 7
klish/ksession/kcontext.c

@@ -19,7 +19,7 @@ struct kcontext_s {
 	int retcode;
 	kplugin_t *plugin;
 	kpargv_t *pargv;
-	kaction_t *action; // Current action
+	faux_list_node_t *action_iter; // Current action
 	ksym_t *sym;
 	int stdin;
 	int stdout;
@@ -47,10 +47,6 @@ FAUX_HIDDEN KSET(context, kplugin_t *, plugin);
 KGET(context, ksym_t *, sym);
 FAUX_HIDDEN KSET(context, ksym_t *, sym);
 
-// Action
-KGET(context, kaction_t *, action);
-FAUX_HIDDEN KSET(context, kaction_t *, action);
-
 // Pargv
 KGET(context, kpargv_t *, pargv);
 FAUX_HIDDEN KSET(context, kpargv_t *, pargv);
@@ -67,7 +63,7 @@ FAUX_HIDDEN KSET(context, int, stdout);
 KGET(context, int, stderr);
 FAUX_HIDDEN KSET(context, int, stderr);
 
-// STDERR
+// PID
 KGET(context, pid_t, pid);
 FAUX_HIDDEN KSET(context, pid_t, pid);
 
@@ -89,7 +85,7 @@ kcontext_t *kcontext_new(kcontext_type_e type)
 	context->type = type;
 	context->plugin = NULL;
 	context->pargv = NULL;
-	context->action = NULL;
+	context->action_iter = NULL;
 	context->sym = NULL;
 
 	// I/O

+ 7 - 0
klish/ksession/kexec.c

@@ -192,6 +192,13 @@ static bool_t exec_action_sequence(kcontext_t *context, pid_t pid)
 	if (!context)
 		return BOOL_FALSE;
 
+	if (kcontext_done(context) || (kcontext_pid(context) != pid))
+		return BOOL_TRUE;
+
+//	iter = kexec_contexts_iter(exec);
+//	while ((context = kexec_contexts_each(&iter))) {
+//		exec_action_sequence(context, pid);
+//	}
 
 printf("CONTEXT\n");
 actions = actions;