MEDIUM: stream-int: replace channel_alloc_buffer() with si_alloc_ibuf() everywhere
Well that's only 3 places (applet.c, stream_interface.c, hlua.c). This ensures we always clear SI_FL_WAIT_ROOM before setting it on failure, so that it is granted that SI_FL_WAIT_ROOM always indicates a lack of room for doing an operation, including the inability to allocate a buffer for this.
This commit is contained in:
parent
0979916d3b
commit
581abd3f99
@ -36,7 +36,7 @@ struct task *task_run_applet(struct task *t, void *context, unsigned short state
|
|||||||
* applet in all cases. So this is the applet responsibility to
|
* applet in all cases. So this is the applet responsibility to
|
||||||
* check if this buffer was allocated or not. This let a chance
|
* check if this buffer was allocated or not. This let a chance
|
||||||
* for applets to do some other processing if needed. */
|
* for applets to do some other processing if needed. */
|
||||||
if (!channel_alloc_buffer(si_ic(si), &app->buffer_wait))
|
if (!si_alloc_ibuf(si, &app->buffer_wait))
|
||||||
si_applet_cant_put(si);
|
si_applet_cant_put(si);
|
||||||
|
|
||||||
/* We always pretend the applet can't get and doesn't want to
|
/* We always pretend the applet can't get and doesn't want to
|
||||||
|
@ -2030,7 +2030,7 @@ static int hlua_socket_write_yield(struct lua_State *L,int status, lua_KContext
|
|||||||
* the request buffer if its not required.
|
* the request buffer if its not required.
|
||||||
*/
|
*/
|
||||||
if (s->req.buf.size == 0) {
|
if (s->req.buf.size == 0) {
|
||||||
if (!channel_alloc_buffer(&s->req, &appctx->buffer_wait))
|
if (!si_alloc_ibuf(si, &appctx->buffer_wait))
|
||||||
goto hlua_socket_write_yield_return;
|
goto hlua_socket_write_yield_return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1150,10 +1150,8 @@ int si_cs_recv(struct conn_stream *cs)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* now we'll need a input buffer for the stream */
|
/* now we'll need a input buffer for the stream */
|
||||||
if (!channel_alloc_buffer(ic, &(si_strm(si)->buffer_wait))) {
|
if (!si_alloc_ibuf(si, &(si_strm(si)->buffer_wait)))
|
||||||
si->flags |= SI_FL_WAIT_ROOM;
|
|
||||||
goto end_recv;
|
goto end_recv;
|
||||||
}
|
|
||||||
|
|
||||||
/* Important note : if we're called with POLL_IN|POLL_HUP, it means the read polling
|
/* Important note : if we're called with POLL_IN|POLL_HUP, it means the read polling
|
||||||
* was enabled, which implies that the recv buffer was not full. So we have a guarantee
|
* was enabled, which implies that the recv buffer was not full. So we have a guarantee
|
||||||
|
Loading…
x
Reference in New Issue
Block a user