Browse Source

Microoptimise ckdbq_process

master
Con Kolivas 9 years ago
parent
commit
5c09f0608f
  1. 13
      src/stratifier.c

13
src/stratifier.c

@ -6783,7 +6783,7 @@ static bool test_and_clear(bool *val, mutex_t *lock)
static void ckdbq_process(ckpool_t *ckp, char *msg)
{
sdata_t *sdata = ckp->data;
size_t responselen = 0;
size_t responselen;
char *buf = NULL;
while (!buf) {
@ -6803,16 +6803,15 @@ static void ckdbq_process(ckpool_t *ckp, char *msg)
/* Process any requests from ckdb that are heartbeat responses with
* specific requests. */
if (likely(buf))
responselen = strlen(buf);
if (likely(responselen > 0)) {
if (likely(responselen > 1)) {
char *response = alloca(responselen);
int offset = 0;
memset(response, 0, responselen);
if (sscanf(buf, "%*d.%*d.%c%n", response, &offset) > 0) {
strcpy(response+1, buf+offset);
if (safecmp(response, "ok")) {
if (likely(sscanf(buf, "%*d.%*d.%c%n", response, &offset) > 0)) {
strcpy(response + 1, buf + offset);
if (likely(safecmp(response, "ok"))) {
char *cmd;
cmd = response;
@ -6826,8 +6825,8 @@ static void ckdbq_process(ckpool_t *ckp, char *msg)
LOGWARNING("Got ckdb failure response: %s", buf);
} else
LOGWARNING("Got bad ckdb response: %s", buf);
free(buf);
}
free(buf);
}
static int transactions_by_jobid(sdata_t *sdata, const int64_t id)

Loading…
Cancel
Save