Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
U
unique-xids
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
unique-xids
Commits
5b77d349
Commit
5b77d349
authored
Nov 29, 2011
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Push sess out of HSH_Drop() and HSH_Unbusy()
parent
efd6a980
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
20 deletions
+20
-20
cache_center.c
bin/varnishd/cache/cache_center.c
+5
-5
cache_hash.c
bin/varnishd/cache/cache_hash.c
+13
-13
hash_slinger.h
bin/varnishd/hash/hash_slinger.h
+2
-2
No files found.
bin/varnishd/cache/cache_center.c
View file @
5b77d349
...
...
@@ -238,7 +238,7 @@ cnt_prepresp(struct sess *sp)
break
;
if
(
sp
->
wrk
->
do_stream
)
{
VDI_CloseFd
(
sp
->
wrk
);
HSH_Drop
(
sp
);
HSH_Drop
(
sp
->
wrk
);
}
else
{
(
void
)
HSH_Deref
(
sp
->
wrk
,
NULL
,
&
sp
->
wrk
->
obj
);
}
...
...
@@ -495,7 +495,7 @@ cnt_error(struct sess *sp)
if
(
sp
->
handling
==
VCL_RET_RESTART
&&
sp
->
restarts
<
cache_param
->
max_restarts
)
{
HSH_Drop
(
sp
);
HSH_Drop
(
sp
->
wrk
);
sp
->
director
=
NULL
;
sp
->
restarts
++
;
sp
->
step
=
STP_RECV
;
...
...
@@ -873,7 +873,7 @@ cnt_fetchbody(struct sess *sp)
AN
(
sp
->
director
);
if
(
i
)
{
HSH_Drop
(
sp
);
HSH_Drop
(
wrk
);
AZ
(
wrk
->
obj
);
sp
->
err_code
=
503
;
sp
->
step
=
STP_ERROR
;
...
...
@@ -884,7 +884,7 @@ cnt_fetchbody(struct sess *sp)
EXP_Insert
(
wrk
->
obj
);
AN
(
wrk
->
obj
->
objcore
);
AN
(
wrk
->
obj
->
objcore
->
ban
);
HSH_Unbusy
(
sp
);
HSH_Unbusy
(
wrk
);
}
wrk
->
acct_tmp
.
fetch
++
;
sp
->
step
=
STP_PREPRESP
;
...
...
@@ -939,7 +939,7 @@ cnt_streambody(struct sess *sp)
EXP_Insert
(
sp
->
wrk
->
obj
);
AN
(
sp
->
wrk
->
obj
->
objcore
);
AN
(
sp
->
wrk
->
obj
->
objcore
->
ban
);
HSH_Unbusy
(
sp
);
HSH_Unbusy
(
sp
->
wrk
);
}
else
{
sp
->
doclose
=
"Stream error"
;
}
...
...
bin/varnishd/cache/cache_hash.c
View file @
5b77d349
...
...
@@ -580,29 +580,29 @@ HSH_Purge(const struct sess *sp, struct objhead *oh, double ttl, double grace)
*/
void
HSH_Drop
(
struct
sess
*
sp
)
HSH_Drop
(
struct
worker
*
wrk
)
{
struct
object
*
o
;
CHECK_OBJ_NOTNULL
(
sp
,
SESS
_MAGIC
);
o
=
sp
->
wrk
->
obj
;
CHECK_OBJ_NOTNULL
(
wrk
,
WORKER
_MAGIC
);
o
=
wrk
->
obj
;
CHECK_OBJ_NOTNULL
(
o
,
OBJECT_MAGIC
);
AssertObjCorePassOrBusy
(
o
->
objcore
);
o
->
exp
.
ttl
=
-
1
.;
if
(
o
->
objcore
!=
NULL
)
/* Pass has no objcore */
HSH_Unbusy
(
sp
);
(
void
)
HSH_Deref
(
sp
->
wrk
,
NULL
,
&
sp
->
wrk
->
obj
);
HSH_Unbusy
(
wrk
);
(
void
)
HSH_Deref
(
wrk
,
NULL
,
&
wrk
->
obj
);
}
void
HSH_Unbusy
(
const
struct
sess
*
sp
)
HSH_Unbusy
(
struct
worker
*
wrk
)
{
struct
object
*
o
;
struct
objhead
*
oh
;
struct
objcore
*
oc
;
CHECK_OBJ_NOTNULL
(
sp
,
SESS
_MAGIC
);
o
=
sp
->
wrk
->
obj
;
CHECK_OBJ_NOTNULL
(
wrk
,
WORKER
_MAGIC
);
o
=
wrk
->
obj
;
CHECK_OBJ_NOTNULL
(
o
,
OBJECT_MAGIC
);
oc
=
o
->
objcore
;
CHECK_OBJ_NOTNULL
(
oc
,
OBJCORE_MAGIC
);
...
...
@@ -614,9 +614,9 @@ HSH_Unbusy(const struct sess *sp)
assert
(
oc
->
refcnt
>
0
);
assert
(
oh
->
refcnt
>
0
);
if
(
o
->
ws_o
->
overflow
)
sp
->
wrk
->
stats
.
n_objoverflow
++
;
wrk
->
stats
.
n_objoverflow
++
;
if
(
cache_param
->
diag_bitmap
&
0x40
)
WS
P
(
sp
,
SLT_Debug
,
WS
L
(
wrk
,
SLT_Debug
,
0
,
"Object %u workspace free %u"
,
o
->
xid
,
WS_Free
(
o
->
ws_o
));
/* XXX: pretouch neighbors on oh->objcs to prevent page-on under mtx */
...
...
@@ -626,14 +626,14 @@ HSH_Unbusy(const struct sess *sp)
VTAILQ_REMOVE
(
&
oh
->
objcs
,
oc
,
list
);
VTAILQ_INSERT_HEAD
(
&
oh
->
objcs
,
oc
,
list
);
oc
->
flags
&=
~
OC_F_BUSY
;
AZ
(
sp
->
wrk
->
nbusyobj
);
sp
->
wrk
->
nbusyobj
=
oc
->
busyobj
;
AZ
(
wrk
->
nbusyobj
);
wrk
->
nbusyobj
=
oc
->
busyobj
;
oc
->
busyobj
=
NULL
;
if
(
oh
->
waitinglist
!=
NULL
)
hsh_rush
(
oh
);
AN
(
oc
->
ban
);
Lck_Unlock
(
&
oh
->
mtx
);
assert
(
oc_getobj
(
sp
->
wrk
,
oc
)
==
o
);
assert
(
oc_getobj
(
wrk
,
oc
)
==
o
);
}
void
...
...
bin/varnishd/hash/hash_slinger.h
View file @
5b77d349
...
...
@@ -54,9 +54,9 @@ struct hash_slinger {
void
HSH_Prealloc
(
const
struct
sess
*
sp
);
void
HSH_Cleanup
(
struct
worker
*
w
);
struct
objcore
*
HSH_Lookup
(
struct
sess
*
sp
,
struct
objhead
**
poh
);
void
HSH_Unbusy
(
const
struct
sess
*
sp
);
void
HSH_Unbusy
(
struct
worker
*
wrk
);
void
HSH_Ref
(
struct
objcore
*
o
);
void
HSH_Drop
(
struct
sess
*
sp
);
void
HSH_Drop
(
struct
worker
*
wrk
);
void
HSH_Init
(
const
struct
hash_slinger
*
slinger
);
void
HSH_AddString
(
const
struct
sess
*
sp
,
const
char
*
str
);
struct
objcore
*
HSH_Insert
(
const
struct
sess
*
sp
);
...
...
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