Unnoetiges enable_commands entfernt.
Zumindest heute ist es nicht noetig, dass ein Objekt "lebt",
damit es einen HB haben kann.
Change-Id: I8c9a9d5eb963acbf2724cee46d99bc2d39dd15ef
diff --git a/p/service/padreic/mnpc/walk_master.c b/p/service/padreic/mnpc/walk_master.c
index fedc26d..bec6d4f 100644
--- a/p/service/padreic/mnpc/walk_master.c
+++ b/p/service/padreic/mnpc/walk_master.c
@@ -49,7 +49,6 @@
protected void create()
{
walker=map(allocate(MAX_DELAYTIME+1), #'allocate);
- enable_commands(); // ohne das, kein heart_beat()
}
#define ERROR(x) raise_error(sprintf(x, previous_object()));
@@ -85,6 +84,7 @@
raise_error(sprintf("Anmeldung von Closures auf fremde lfuns ist nicht "
"erlaubt. Closure: %O\n",func));
}
+ // Erster Client? -> HB einschalten.
if (!sizeof(clients)) {
set_heart_beat(1);
}
@@ -183,10 +183,13 @@
}
}
-void reset()
-// kostet maximal einen unnoetigen heart_beat() pro reset -> vertretbar
+// im reset zur Sicherheit mal den heart_beat ggf. einschalten.
// dient zu einem wieder anwerfen im Falle eines Fehlers im heart_beat()
+// wenn doch nix gemacht werden musss, schaltet sich der HB eh wieder aus.
+void reset()
{
+ // set_heart_beat() wird als query_heart_beat() 'missbraucht' und daher muss
+ // im else der HB in jedem Fall auch wieder eingeschaltet werden.
if (set_heart_beat(0)<=0)
{
if (sizeof(clients) > 0)
@@ -194,8 +197,7 @@
write_file(object_name()+".err", sprintf(
"%s: Fehler im heart_beat(). %d aktive Prozesse.\n",
dtime(time()), sizeof(clients)));
- enable_commands();
- set_heart_beat(1);
+ set_heart_beat(1);
}
}
else