Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-weightadjust
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
libvmod-weightadjust
Commits
7efce6b7
Unverified
Commit
7efce6b7
authored
Apr 27, 2022
by
Nils Goroll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refcount backends
parent
383e68dc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
9 additions
and
1 deletion
+9
-1
vdir.c
src/vdir.c
+5
-1
vmod_weightadjust.c
src/vmod_weightadjust.c
+2
-0
wadj_thread.c
src/wadj_thread.c
+1
-0
wadj_thread.h
src/wadj_thread.h
+1
-0
No files found.
src/vdir.c
View file @
7efce6b7
...
...
@@ -72,10 +72,13 @@ void
vdir_delete
(
struct
vdir
**
vdp
)
{
struct
vdir
*
vd
;
unsigned
u
;
TAKE_OBJ_NOTNULL
(
vd
,
vdp
,
VDIR_MAGIC
);
AZ
(
vd
->
dir
);
for
(
u
=
0
;
u
<
vd
->
n_backend
;
u
++
)
VRT_Assign_Backend
(
&
vd
->
backend
[
u
],
NULL
);
free
(
vd
->
backend
);
free
(
vd
->
weight
);
AZ
(
pthread_rwlock_destroy
(
&
vd
->
mtx
));
...
...
@@ -123,7 +126,7 @@ vdir_add_backend(VRT_CTX, struct vdir *vd, VCL_BACKEND be, double weight)
vdir_expand
(
vd
,
vd
->
l_backend
+
16
);
assert
(
vd
->
n_backend
<
vd
->
l_backend
);
u
=
vd
->
n_backend
++
;
vd
->
backend
[
u
]
=
be
;
VRT_Assign_Backend
(
&
vd
->
backend
[
u
],
be
)
;
vd
->
weight
[
u
]
=
weight
;
vd
->
total_weight
+=
weight
;
vdir_unlock
(
vd
);
...
...
@@ -150,6 +153,7 @@ vdir_remove_backend(VRT_CTX, struct vdir *vd, VCL_BACKEND be, unsigned *cur)
vdir_unlock
(
vd
);
return
;
}
VRT_Assign_Backend
(
&
vd
->
backend
[
u
],
NULL
);
vd
->
total_weight
-=
vd
->
weight
[
u
];
n
=
(
vd
->
n_backend
-
u
)
-
1
;
memmove
(
&
vd
->
backend
[
u
],
&
vd
->
backend
[
u
+
1
],
n
*
sizeof
(
vd
->
backend
[
0
]));
...
...
src/vmod_weightadjust.c
View file @
7efce6b7
...
...
@@ -266,6 +266,7 @@ vmod_random_add_backend(VRT_CTX,
AZ
(
pthread_cond_init
(
&
prop
->
wakeup
.
cv
,
NULL
));
prop
->
vd
=
rr
->
vd
;
prop
->
be
=
be
;
VRT_Assign_Backend
(
&
prop
->
dir
,
args
->
backend
);
prop
->
vd_updates
=
&
rr
->
extra
.
updates
;
AN
(
args
->
weight_update
);
prop
->
vre
=
args
->
weight_update
;
...
...
@@ -297,6 +298,7 @@ vmod_random_add_backend(VRT_CTX,
return
;
err:
VRT_Assign_Backend
(
&
prop
->
dir
,
NULL
);
FREE_OBJ
(
prop
);
}
...
...
src/wadj_thread.c
View file @
7efce6b7
...
...
@@ -381,6 +381,7 @@ wadj_dir_fini(const struct wadj_prop_head *vd_props,
VTAILQ_FOREACH_SAFE
(
prop
,
vd_props
,
list_vd
,
save
)
{
VTAILQ_REMOVE
(
vcl_props
,
prop
,
list_vcl
);
VRT_Assign_Backend
(
&
prop
->
dir
,
NULL
);
wadj_thr_stop
(
prop
);
wadj_prop_fini
(
&
prop
);
AZ
(
prop
);
...
...
src/wadj_thread.h
View file @
7efce6b7
...
...
@@ -48,6 +48,7 @@ struct wadj_prop {
struct
vdir
*
vd
;
struct
backend
*
be
;
VCL_BACKEND
dir
;
int
*
vd_updates
;
pthread_t
thread
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment