[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25784 - gnunet/src/sysmon
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25784 - gnunet/src/sysmon |
Date: |
Mon, 14 Jan 2013 17:22:25 +0100 |
Author: wachs
Date: 2013-01-14 17:22:25 +0100 (Mon, 14 Jan 2013)
New Revision: 25784
Modified:
gnunet/src/sysmon/gnunet-service-sysmon.c
Log:
changes
Modified: gnunet/src/sysmon/gnunet-service-sysmon.c
===================================================================
--- gnunet/src/sysmon/gnunet-service-sysmon.c 2013-01-14 16:08:40 UTC (rev
25783)
+++ gnunet/src/sysmon/gnunet-service-sysmon.c 2013-01-14 16:22:25 UTC (rev
25784)
@@ -120,6 +120,10 @@
*/
GNUNET_SCHEDULER_Task task;
+ /**
+ * Task closure
+ */
+ void *task_cls;
};
/**
@@ -165,7 +169,10 @@
{
struct SysmonProperty *sp;
struct SysmonProperty *next;
+ struct SysmonGtopProcProperty *gt_cur;
+ struct SysmonGtopProcProperty *gt_next;
+
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "sysdaemon stopping ... \n");
end_task = GNUNET_SCHEDULER_NO_TASK;
@@ -179,9 +186,9 @@
next = sp_head;
while (NULL != (sp = next))
{
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping `%s' \n", sp->desc);
+ next = sp->next;
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Stopping `%s' \n",
sp->desc);
GNUNET_CONTAINER_DLL_remove (sp_head, sp_tail, sp);
- next = sp->next;
if (GNUNET_SCHEDULER_NO_TASK != sp->task_id)
{
GNUNET_SCHEDULER_cancel (sp->task_id);
@@ -193,6 +200,15 @@
GNUNET_free (sp);
}
+ gt_next = pp_head;
+ while (NULL != (gt_cur = gt_next))
+ {
+ gt_next = gt_cur->next;
+ GNUNET_CONTAINER_DLL_remove (pp_head, pp_tail, gt_cur);
+ GNUNET_free (gt_cur->binary);
+ GNUNET_free (gt_cur);
+ }
+
}
static void
@@ -308,7 +324,8 @@
static void
exec_gtop_proc_mon (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
{
- //struct SysmonGtopProcProperty *sp = cls;
+ struct SysmonGtopProcProperty *sp = cls;
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Property `%s'\n", sp->binary);
}
static void
@@ -497,6 +514,7 @@
sp->interval = GNUNET_TIME_UNIT_MINUTES;
sp->task_id = GNUNET_SCHEDULER_NO_TASK;
sp->task = update_uptime;
+ sp->task_cls = sp;
GNUNET_CONTAINER_DLL_insert (sp_head, sp_tail, sp);
return GNUNET_OK;
}
@@ -508,7 +526,7 @@
char *s;
char *binary;
struct SysmonGtopProcProperty *pp;
- int c;
+ struct SysmonProperty *sp;
/* Load network monitoring tasks */
/* Load service memory monitoring tasks */
@@ -519,7 +537,6 @@
return GNUNET_SYSERR;
s = strtok (services, " ");
- c = 0;
while (NULL != s)
{
if (GNUNET_OK == GNUNET_CONFIGURATION_get_value_string(cfg, s,
"BINARY", &binary))
@@ -528,17 +545,24 @@
pp = GNUNET_malloc (sizeof (struct
SysmonGtopProcProperty));
pp->binary = binary;
GNUNET_CONTAINER_DLL_insert (pp_head, pp_tail, pp);
- c++
+
+ /* GNUnet sysmon daemon uptime in seconds */
+
+ sp = GNUNET_malloc (sizeof (struct SysmonProperty));
+ GNUNET_asprintf(&sp->desc, "Process Monitoring for service
%s", s);
+ sp->type = t_continous;
+ sp->value_type = v_numeric;
+ sp->num_val = (uint64_t) 0;
+ sp->interval = GNUNET_TIME_UNIT_SECONDS;
+ sp->task_id = GNUNET_SCHEDULER_NO_TASK;
+ sp->task = exec_gtop_proc_mon;
+ sp->task_cls = pp;
+ GNUNET_CONTAINER_DLL_insert (sp_head, sp_tail, sp);
}
s = strtok (NULL, " ");
}
GNUNET_free (services);
- if (c > 0)
- {
-
- }
-
return GNUNET_OK;
}
@@ -550,7 +574,7 @@
struct SysmonProperty *sp = cls;
sp->task_id = GNUNET_SCHEDULER_NO_TASK;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Running continous property `%s' \n",
sp->desc);
- sp->task (cls, tc);
+ sp->task (sp->task_cls, tc);
sp->task_id = GNUNET_SCHEDULER_add_delayed (sp->interval, &run_property, sp);
}
@@ -582,30 +606,6 @@
/**
- * Task run during shutdown.
- *
- * @param cls unused
- * @param tc unused
- */
-static void
-cleanup_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
-{
- struct SysmonGtopProcProperty *cur;
- struct SysmonGtopProcProperty *next;
-
- next = pp_head;
- while (NULL != (cur = next))
- {
- next = cur->next;
- GNUNET_CONTAINER_DLL_remove (pp_head, pp_tail, cur);
- GNUNET_free (cur->binary);
- GNUNET_free (cur);
- }
-
-}
-
-
-/**
* Process template requests.
*
* @param cls closure
@@ -622,8 +622,6 @@
};
/* FIXME: do setup here */
GNUNET_SERVER_add_handlers (server, handlers);
- GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &cleanup_task,
- NULL);
struct GNUNET_CONFIGURATION_Handle *properties;
char *file;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25784 - gnunet/src/sysmon,
gnunet <=