Răsfoiți Sursa

ncd/modules/process_manager.c: minor changes

ambrop7 15 ani în urmă
părinte
comite
d73b86efc3
1 a modificat fișierele cu 9 adăugiri și 1 ștergeri
  1. 9 1
      ncd/modules/process_manager.c

+ 9 - 1
ncd/modules/process_manager.c

@@ -67,12 +67,12 @@ struct process {
     char *name;
     BTimer retry_timer;
     LinkedList2Node processes_list_node;
-    int state;
     int have_params;
     char *params_template_name;
     NCDValue params_args;
     int have_module_process;
     NCDModuleProcess module_process;
+    int state;
 };
 
 struct startstop_instance {
@@ -241,12 +241,16 @@ void process_stop (struct process *p)
 {
     switch (p->state) {
         case PROCESS_STATE_RETRYING: {
+            ASSERT(!p->have_module_process)
+            
             // free process
             process_free(p);
             return;
         } break;
         
         case PROCESS_STATE_RUNNING: {
+            ASSERT(p->have_module_process)
+            
             // request process to die
             NCDModuleProcess_Die(&p->module_process);
             
@@ -255,6 +259,8 @@ void process_stop (struct process *p)
         } break;
         
         case PROCESS_STATE_RESTARTING: {
+            ASSERT(p->have_params)
+            
             // free params
             NCDValue_Free(&p->params_args);
             free(p->params_template_name);
@@ -467,10 +473,12 @@ static void start_func_new (NCDModuleInst *i)
         } else {
             if (p) {
                 if (!process_restart(p, template_name, args_arg)) {
+                    ModuleLog(o->i, BLOG_ERROR, "failed to restart process %s", name);
                     goto fail1;
                 }
             } else {
                 if (!process_new(mo, name, template_name, args_arg)) {
+                    ModuleLog(o->i, BLOG_ERROR, "failed to create process %s", name);
                     goto fail1;
                 }
             }