aboutsummaryrefslogtreecommitdiff
path: root/src/util
diff options
context:
space:
mode:
authorPhilipp Tölke <toelke@in.tum.de>2011-06-15 08:29:12 +0000
committerPhilipp Tölke <toelke@in.tum.de>2011-06-15 08:29:12 +0000
commit3f7cc210b3bbd6d5a30890479efd4a5008eed919 (patch)
tree6a37ecc3e27fbebd65c7f51895c4212db7adda7d /src/util
parent8cb737d8f302eb66b46bc38df8d6e8520893a289 (diff)
downloadgnunet-3f7cc210b3bbd6d5a30890479efd4a5008eed919.tar.gz
gnunet-3f7cc210b3bbd6d5a30890479efd4a5008eed919.zip
debug fds
Diffstat (limited to 'src/util')
-rw-r--r--src/util/scheduler.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/util/scheduler.c b/src/util/scheduler.c
index 81f7d8cf0..a7dca4af7 100644
--- a/src/util/scheduler.c
+++ b/src/util/scheduler.c
@@ -46,6 +46,11 @@
46#define EXECINFO GNUNET_NO 46#define EXECINFO GNUNET_NO
47 47
48/** 48/**
49 * Check each file descriptor before adding
50 */
51#define DEBUG_FDS GNUNET_NO
52
53/**
49 * Depth of the traces collected via EXECINFO. 54 * Depth of the traces collected via EXECINFO.
50 */ 55 */
51#define MAX_TRACE_DEPTH 50 56#define MAX_TRACE_DEPTH 50
@@ -1225,6 +1230,42 @@ add_without_sets (struct GNUNET_TIME_Relative delay,
1225 t->num_backtrace_strings = backtrace(backtrace_array, MAX_TRACE_DEPTH); 1230 t->num_backtrace_strings = backtrace(backtrace_array, MAX_TRACE_DEPTH);
1226 t->backtrace_strings = backtrace_symbols(backtrace_array, t->num_backtrace_strings); 1231 t->backtrace_strings = backtrace_symbols(backtrace_array, t->num_backtrace_strings);
1227#endif 1232#endif
1233#ifdef DEBUG_FDS
1234 if (-1 != rfd)
1235 {
1236 int flags = fcntl(rfd, F_GETFD);
1237 if (flags == -1 && errno == EBADF)
1238 {
1239 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Got invalid file descriptor %d!\n", rfd);
1240#if EXECINFO
1241 int i;
1242
1243 for (i=0;i<t->num_backtrace_strings;i++)
1244 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1245 "Trace: %s\n",
1246 t->backtrace_strings[i]);
1247#endif
1248 GNUNET_assert(0);
1249 }
1250 }
1251 if (-1 != wfd)
1252 {
1253 int flags = fcntl(wfd, F_GETFD);
1254 if (flags == -1 && errno == EBADF)
1255 {
1256 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Got invalid file descriptor %d!\n", wfd);
1257#if EXECINFO
1258 int i;
1259
1260 for (i=0;i<t->num_backtrace_strings;i++)
1261 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1262 "Trace: %s\n",
1263 t->backtrace_strings[i]);
1264#endif
1265 GNUNET_assert(0);
1266 }
1267 }
1268#endif
1228 t->read_fd = rfd; 1269 t->read_fd = rfd;
1229 GNUNET_assert(wfd >= -1); 1270 GNUNET_assert(wfd >= -1);
1230 t->write_fd = wfd; 1271 t->write_fd = wfd;