From: Andre Noll Date: Sun, 5 Dec 2010 17:41:36 +0000 (+0100) Subject: Merge branch 't/writer_cleanups' X-Git-Tag: v0.4.5~4 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=877c179023ba45d481e9d89ac82fb0856617587b;hp=c1b587842e553665fbffce079a5ff5a69c9c6a38 Merge branch 't/writer_cleanups' --- diff --git a/fd.c b/fd.c index 978ada45..54eddb3c 100644 --- a/fd.c +++ b/fd.c @@ -97,7 +97,7 @@ int write_nonblock(int fd, const char *buf, size_t len) * In any case, \a num_bytes contains the number of bytes that have been * successfully read from \a fd (zero if the first readv() call failed with * EAGAIN). Note that even if the function returns negative, some data might - * have been read before the error occured. In this case \a num_bytes is + * have been read before the error occurred. In this case \a num_bytes is * positive. * * \sa \ref write_nonblock(), read(2), readv(2). diff --git a/fecdec_filter.c b/fecdec_filter.c index 30696c10..d8b92976 100644 --- a/fecdec_filter.c +++ b/fecdec_filter.c @@ -414,7 +414,7 @@ static int dispatch_slice(char *buf, size_t len, struct fec_header *h, ret = fec_new(k, n, &pfd->fec); if (ret < 0) return ret; - pfd->btrp = btr_pool_new("fecdec", 20 * k * h->slice_bytes); + pfd->btrp = btr_pool_new("fecdec", 64 * 1024); /* decode and clear the first group */ ret = decode_group(pfd->first_complete_group, fn); if (ret < 0) diff --git a/para.h b/para.h index 305707da..1dcbb6d3 100644 --- a/para.h +++ b/para.h @@ -50,7 +50,7 @@ _x > 0? _x : -_x; }) /** - * define a standard log function that always writes to stderr + * Define a standard log function that always writes to stderr. * * \param loglevel_barrier If the loglevel of the current message * is less than that, the message is going to be ignored. @@ -76,22 +76,22 @@ "Written by Andre Noll.\n" \ "Report bugs to .\n" -/** print out \p VERSION_TEXT and exit if version flag was given */ +/** Print out \p VERSION_TEXT and exit if version flag was given. */ #define HANDLE_VERSION_FLAG(_prefix, _args_info_struct) \ if (_args_info_struct.version_given) { \ printf("%s", VERSION_TEXT(_prefix)); \ exit(EXIT_SUCCESS); \ } -/* Sent by para_client to initiate the authentication procedure. */ +/** Sent by para_client to initiate the authentication procedure. */ #define AUTH_REQUEST_MSG "auth rsa " -/** sent by para_server for commands that expect a data file */ +/** Sent by para_server for commands that expect a data file. */ #define AWAITING_DATA_MSG "\nAwaiting Data." -/** sent by para_server if authentication was successful */ +/** Sent by para_server if authentication was successful. */ #define PROCEED_MSG "Proceed." -/** length of the \p PROCEED_MSG string */ +/** Length of the \p PROCEED_MSG string. */ #define PROCEED_MSG_LEN strlen(PROCEED_MSG) -/** sent by para_client to indicate the end of the command line */ +/** Sent by para_client to indicate the end of the command line. */ #define EOC_MSG "\nEnd of Command." /* exec */ @@ -165,6 +165,7 @@ _static_inline_ long int para_random(unsigned max) return ((max + 0.0) * (random() / (RAND_MAX + 1.0))); } +/** Divide and round up to next integer. */ #define DIV_ROUND_UP(x, y) ({ \ typeof(y) _divisor = y; \ ((x) + _divisor - 1) / _divisor; }) diff --git a/write_common.c b/write_common.c index be7f9c22..04db8ff0 100644 --- a/write_common.c +++ b/write_common.c @@ -157,7 +157,15 @@ static void get_btr_value(struct btr_node *btrn, const char *cmd, char *buf = NULL; int ret = btr_exec_up(btrn, cmd, &buf); - assert(ret >= 0); + if (ret < 0) { + /* + * This really should not happen. It means one of our parent + * nodes died unexpectedly. Proceed with fingers crossed. + */ + PARA_CRIT_LOG("cmd %s: %s\n", cmd, para_strerror(-ret)); + *result = 0; + return; + } ret = para_atoi32(buf, result); assert(ret >= 0); free(buf);