MINOR: applet: adjust the allocation criticity based on the requested buffer

When we want to allocate an in buffer, it's in order to pass data to
the applet, that will consume it, so it must be seen as the same as
a send() from the higher level, i.e. MUX_TX. And for the outbuf, it's
a stream endpoint returning data, i.e. DB_SE_RX.
This commit is contained in:
Willy Tarreau 2024-05-07 20:09:04 +02:00
parent 4ffb3b5ebe
commit 4a42af1744

View File

@ -95,8 +95,8 @@ static inline struct buffer *appctx_get_buf(struct appctx *appctx, struct buffer
int is_inbuf = (bptr == &appctx->inbuf);
if (likely(!LIST_INLIST(&appctx->buffer_wait.list))) {
if (unlikely((buf = b_alloc(bptr, DB_SE_RX)) == NULL)) {
b_queue(DB_SE_RX, &appctx->buffer_wait, appctx, appctx_buf_available);
if (unlikely((buf = b_alloc(bptr, is_inbuf ? DB_MUX_TX : DB_SE_RX)) == NULL)) {
b_queue(is_inbuf ? DB_MUX_TX : DB_SE_RX, &appctx->buffer_wait, appctx, appctx_buf_available);
applet_fl_set(appctx, is_inbuf ? APPCTX_FL_INBLK_ALLOC : APPCTX_FL_OUTBLK_ALLOC);
}
}