[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r29383 - gnunet/src/ats-tests
From: |
gnunet |
Subject: |
[GNUnet-SVN] r29383 - gnunet/src/ats-tests |
Date: |
Wed, 18 Sep 2013 16:28:37 +0200 |
Author: wachs
Date: 2013-09-18 16:28:37 +0200 (Wed, 18 Sep 2013)
New Revision: 29383
Modified:
gnunet/src/ats-tests/perf_ats_logging.c
Log:
log handling
Modified: gnunet/src/ats-tests/perf_ats_logging.c
===================================================================
--- gnunet/src/ats-tests/perf_ats_logging.c 2013-09-18 13:53:37 UTC (rev
29382)
+++ gnunet/src/ats-tests/perf_ats_logging.c 2013-09-18 14:28:37 UTC (rev
29383)
@@ -35,14 +35,39 @@
static int num_peers;
static char *name;
+struct LoggingTimestep
+{
+ struct GNUNET_TIME_Absolute timestamp;
+ struct LoggingTimestep *next;
+ struct LoggingTimestep *prev;
+};
+
+struct LoggingPeer
+{
+ struct BenchmarkPeer *peer;
+
+ struct GNUNET_TIME_Absolute start;
+
+ struct LoggingTimestep *head;
+ struct LoggingTimestep *tail;
+};
+
+/**
+ * Log structure of length num_peers
+ */
+static struct LoggingPeer *lp;
+
+
static void
write_to_file ()
{
struct GNUNET_DISK_FileHandle *f;
char * filename;
+ char *data;
+ struct LoggingTimestep *cur;
+ int c_m;
-
GNUNET_asprintf (&filename, "%llu_%s.data",
GNUNET_TIME_absolute_get().abs_value_us,name);
f = GNUNET_DISK_file_open (filename,
@@ -55,11 +80,20 @@
return;
}
- if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, "TEST", strlen("TEST")))
+ for (c_m = 0; c_m < num_peers; c_m++)
{
- GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot write data to log file
`%s'\n", filename);
- GNUNET_free (filename);
- return;
+ for (cur = lp[c_m].head; NULL != cur; cur = cur->next)
+ {
+ GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
+ "Master [%u]: timestamp %llu \n", lp[c_m].peer->no, cur->timestamp);
+
+ GNUNET_asprintf (&data, "%llu;\n", cur->timestamp);
+
+ if (GNUNET_SYSERR == GNUNET_DISK_file_write(f, data, strlen(data)))
+ GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot write data to log file
`%s'\n", filename);
+ GNUNET_free (data);
+
+ }
}
if (GNUNET_SYSERR == GNUNET_DISK_file_close(f))
@@ -78,20 +112,24 @@
{
int c_m;
int c_s;
+ struct LoggingTimestep *lt;
+ struct BenchmarkPartner *p;
+
log_task = GNUNET_SCHEDULER_NO_TASK;
- struct BenchmarkPeer *m;
- struct BenchmarkPartner *p;
-
for (c_m = 0; c_m < num_peers; c_m++)
{
- m = &peers[c_m];
- for (c_s = 0; c_s < m->num_partners; c_s++)
+ lt = GNUNET_malloc (sizeof (struct LoggingTimestep));
+ GNUNET_CONTAINER_DLL_insert_tail(lp[c_m].head, lp[c_m].tail, lt);
+ lt->timestamp = GNUNET_TIME_absolute_get();
+
+ for (c_s = 0; c_s < lp[c_m].peer->num_partners; c_s++)
{
p = &peers[c_m].partners[c_s];
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
+
+ GNUNET_log(GNUNET_ERROR_TYPE_INFO,
"Master [%u]: slave [%u]\n",
- m->no, p->dest->no);
+ lp->peer->no, p->dest->no);
}
}
@@ -106,7 +144,9 @@
void
perf_logging_stop ()
{
+ int c_m;
struct GNUNET_SCHEDULER_TaskContext tc;
+ struct LoggingTimestep *cur;
if (GNUNET_SCHEDULER_NO_TASK != log_task)
GNUNET_SCHEDULER_cancel (log_task);
@@ -118,11 +158,23 @@
_("Stop logging\n"));
write_to_file ();
+
+ for (c_m = 0; c_m < num_peers; c_m++)
+ {
+ while (NULL != (cur = lp[c_m].head))
+ {
+ GNUNET_CONTAINER_DLL_remove (lp[c_m].head, lp[c_m].tail, cur);
+ GNUNET_free (cur);
+ }
+ }
+
+ GNUNET_free (lp);
}
void
perf_logging_start (char * testname, struct BenchmarkPeer *masters, int
num_masters)
{
+ int c_m;
GNUNET_log(GNUNET_ERROR_TYPE_INFO,
_("Start logging `%s'\n"), testname);
@@ -130,6 +182,14 @@
num_peers = num_masters;
name = testname;
+ lp = GNUNET_malloc (num_masters * sizeof (struct LoggingPeer));
+
+ for (c_m = 0; c_m < num_masters; c_m ++)
+ {
+ lp[c_m].peer = &masters[c_m];
+ lp[c_m].start = GNUNET_TIME_absolute_get();
+ }
+
/* Schedule logging task */
log_task = GNUNET_SCHEDULER_add_now (&collect_log_task, NULL);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r29383 - gnunet/src/ats-tests,
gnunet <=