struct buffer *buf = NULL;
if (likely(!LIST_INLIST(&appctx->buffer_wait.list)) &&
- unlikely((buf = b_alloc(bptr, DB_CHANNEL)) == NULL)) {
- appctx->buffer_wait.target = appctx;
- appctx->buffer_wait.wakeup_cb = appctx_buf_available;
- LIST_APPEND(&th_ctx->buffer_wq, &appctx->buffer_wait.list);
+ unlikely((buf = b_alloc(bptr, DB_SE_RX)) == NULL)) {
+ b_queue(DB_SE_RX, &appctx->buffer_wait, appctx, appctx_buf_available);
}
return buf;
}
if (b_alloc(&chn->buf, DB_CHANNEL) != NULL)
return 1;
- if (!LIST_INLIST(&wait->list))
- LIST_APPEND(&th_ctx->buffer_wq, &wait->list);
-
+ b_requeue(DB_CHANNEL, wait);
return 0;
}
if (likely(!LIST_INLIST(&check->buf_wait.list)) &&
unlikely((buf = b_alloc(bptr, DB_CHANNEL)) == NULL)) {
- check->buf_wait.target = check;
- check->buf_wait.wakeup_cb = check_buf_available;
- LIST_APPEND(&th_ctx->buffer_wq, &check->buf_wait.list);
+ b_queue(DB_CHANNEL, &check->buf_wait, check, check_buf_available);
}
return buf;
}
if (b_alloc(buf, DB_CHANNEL))
return 1;
- LIST_APPEND(&th_ctx->buffer_wq, &buffer_wait->list);
+ b_requeue(DB_CHANNEL, buffer_wait);
return 0;
}
if (likely(!LIST_INLIST(&fconn->buf_wait.list)) &&
unlikely((buf = b_alloc(bptr, DB_MUX_RX)) == NULL)) {
- fconn->buf_wait.target = fconn;
- fconn->buf_wait.wakeup_cb = fcgi_buf_available;
- LIST_APPEND(&th_ctx->buffer_wq, &fconn->buf_wait.list);
+ b_queue(DB_MUX_RX, &fconn->buf_wait, fconn, fcgi_buf_available);
}
return buf;
}
if (likely(!LIST_INLIST(&h1c->buf_wait.list)) &&
unlikely((buf = b_alloc(bptr, DB_MUX_RX)) == NULL)) {
- h1c->buf_wait.target = h1c;
- h1c->buf_wait.wakeup_cb = h1_buf_available;
- LIST_APPEND(&th_ctx->buffer_wq, &h1c->buf_wait.list);
+ b_queue(DB_MUX_RX, &h1c->buf_wait, h1c, h1_buf_available);
}
return buf;
}
if (likely(!LIST_INLIST(&h2c->buf_wait.list)) &&
unlikely((buf = b_alloc(bptr, DB_MUX_RX)) == NULL)) {
- h2c->buf_wait.target = h2c;
- h2c->buf_wait.wakeup_cb = h2_buf_available;
- LIST_APPEND(&th_ctx->buffer_wq, &h2c->buf_wait.list);
+ b_queue(DB_MUX_RX, &h2c->buf_wait, h2c, h2_buf_available);
}
return buf;
}