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
4f479297
Commit
4f479297
authored
Dec 06, 2011
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add an objcore->getxid() method.
parent
3ef44da5
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
6 deletions
+26
-6
cache.h
bin/varnishd/cache/cache.h
+12
-0
cache_expire.c
bin/varnishd/cache/cache_expire.c
+4
-6
stevedore.c
bin/varnishd/storage/stevedore.c
+10
-0
No files found.
bin/varnishd/cache/cache.h
View file @
4f479297
...
...
@@ -395,12 +395,14 @@ struct storage {
*/
typedef
struct
object
*
getobj_f
(
struct
worker
*
wrk
,
struct
objcore
*
oc
);
typedef
unsigned
getxid_f
(
struct
worker
*
wrk
,
struct
objcore
*
oc
);
typedef
void
updatemeta_f
(
struct
objcore
*
oc
);
typedef
void
freeobj_f
(
struct
objcore
*
oc
);
typedef
struct
lru
*
getlru_f
(
const
struct
objcore
*
oc
);
struct
objcore_methods
{
getobj_f
*
getobj
;
getxid_f
*
getxid
;
updatemeta_f
*
updatemeta
;
freeobj_f
*
freeobj
;
getlru_f
*
getlru
;
...
...
@@ -429,6 +431,16 @@ struct objcore {
struct
ban
*
ban
;
};
static
inline
unsigned
oc_getxid
(
struct
worker
*
wrk
,
struct
objcore
*
oc
)
{
CHECK_OBJ_NOTNULL
(
oc
,
OBJCORE_MAGIC
);
AN
(
oc
->
methods
);
AN
(
oc
->
methods
->
getxid
);
return
(
oc
->
methods
->
getxid
(
wrk
,
oc
));
}
static
inline
struct
object
*
oc_getobj
(
struct
worker
*
wrk
,
struct
objcore
*
oc
)
{
...
...
bin/varnishd/cache/cache_expire.c
View file @
4f479297
...
...
@@ -401,7 +401,7 @@ exp_timer(struct sess *sp, void *priv)
CHECK_OBJ_NOTNULL
(
oc
->
objhead
,
OBJHEAD_MAGIC
);
o
=
oc_getobj
(
sp
->
wrk
,
oc
);
WSL
(
sp
->
wrk
,
SLT_ExpKill
,
0
,
"%u %.0f"
,
o
->
xid
,
EXP_Ttl
(
NULL
,
o
)
-
t
);
o
c_getxid
(
sp
->
wrk
,
oc
)
,
EXP_Ttl
(
NULL
,
o
)
-
t
);
(
void
)
HSH_Deref
(
sp
->
wrk
,
oc
,
NULL
);
}
NEEDLESS_RETURN
(
NULL
);
...
...
@@ -414,10 +414,9 @@ exp_timer(struct sess *sp, void *priv)
*/
int
EXP_NukeOne
(
struct
worker
*
w
,
struct
lru
*
lru
)
EXP_NukeOne
(
struct
worker
*
w
rk
,
struct
lru
*
lru
)
{
struct
objcore
*
oc
;
struct
object
*
o
;
/* Find the first currently unused object on the LRU. */
Lck_Lock
(
&
lru
->
mtx
);
...
...
@@ -446,9 +445,8 @@ EXP_NukeOne(struct worker *w, struct lru *lru)
return
(
-
1
);
/* XXX: bad idea for -spersistent */
o
=
oc_getobj
(
w
,
oc
);
WSL
(
w
,
SLT_ExpKill
,
0
,
"%u LRU"
,
o
->
xid
);
(
void
)
HSH_Deref
(
w
,
NULL
,
&
o
);
WSL
(
wrk
,
SLT_ExpKill
,
0
,
"%u LRU"
,
oc_getxid
(
wrk
,
oc
));
(
void
)
HSH_Deref
(
wrk
,
oc
,
NULL
);
return
(
1
);
}
...
...
bin/varnishd/storage/stevedore.c
View file @
4f479297
...
...
@@ -48,6 +48,15 @@ static const struct stevedore * volatile stv_next;
* Default objcore methods
*/
static
unsigned
__match_proto__
(
getxid_f
)
default_oc_getxid
(
struct
worker
*
wrk
,
struct
objcore
*
oc
)
{
struct
object
*
o
;
o
=
oc_getobj
(
wrk
,
oc
);
return
(
o
->
xid
);
}
static
struct
object
*
__match_proto__
(
getobj_f
)
default_oc_getobj
(
struct
worker
*
wrk
,
struct
objcore
*
oc
)
{
...
...
@@ -84,6 +93,7 @@ default_oc_getlru(const struct objcore *oc)
static
struct
objcore_methods
default_oc_methods
=
{
.
getobj
=
default_oc_getobj
,
.
getxid
=
default_oc_getxid
,
.
freeobj
=
default_oc_freeobj
,
.
getlru
=
default_oc_getlru
,
};
...
...
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