mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-19 12:16:59 +00:00
MINOR: chunks: Make sure trash_size is only set once.
The trash_size variable is shared by all threads, and is set by all threads, when alloc_trash_buffers() is called. To make sure it's set only once, to silence a harmless data race, use a CAS to set it, and only set it if it was 0.
This commit is contained in:
parent
1bfd6020ce
commit
1c3b83242d
@ -68,8 +68,9 @@ struct buffer *get_trash_chunk(void)
|
||||
*/
|
||||
static int alloc_trash_buffers(int bufsize)
|
||||
{
|
||||
int old = 0;
|
||||
chunk_init(&trash, my_realloc2(trash.area, bufsize), bufsize);
|
||||
trash_size = bufsize;
|
||||
HA_ATOMIC_CAS(&trash_size, &old, bufsize);
|
||||
trash_buf1 = (char *)my_realloc2(trash_buf1, bufsize);
|
||||
trash_buf2 = (char *)my_realloc2(trash_buf2, bufsize);
|
||||
return trash.area && trash_buf1 && trash_buf2;
|
||||
|
Loading…
Reference in New Issue
Block a user