diff options
author | Philipp Tölke <toelke@in.tum.de> | 2011-06-15 08:29:12 +0000 |
---|---|---|
committer | Philipp Tölke <toelke@in.tum.de> | 2011-06-15 08:29:12 +0000 |
commit | 3f7cc210b3bbd6d5a30890479efd4a5008eed919 (patch) | |
tree | 6a37ecc3e27fbebd65c7f51895c4212db7adda7d /src/util | |
parent | 8cb737d8f302eb66b46bc38df8d6e8520893a289 (diff) | |
download | gnunet-3f7cc210b3bbd6d5a30890479efd4a5008eed919.tar.gz gnunet-3f7cc210b3bbd6d5a30890479efd4a5008eed919.zip |
debug fds
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/scheduler.c | 41 |
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; |