[master] 150f9fd56 cocci: Add a patch for VTIM_timespec() refactoring
Dridi Boukelmoune
dridi.boukelmoune at gmail.com
Mon Oct 25 14:40:19 UTC 2021
commit 150f9fd56390a722395d3d31fe1f68c1d577f33e
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date: Mon Oct 25 16:31:37 2021 +0200
cocci: Add a patch for VTIM_timespec() refactoring
Already archived since there are no more occurrences in trunk, but it
could be useful on other branches or third-party libvarnish consumers.
The coccinelle patch also takes care of the recent manual refactoring.
Refs 4ae73a5b19ec1fc87cc018c01757535667e33341
Refs cf00dd2ed96c9b7a2ccd02846d9bc55719b9b919
diff --git a/bin/varnishd/waiter/cache_waiter_kqueue.c b/bin/varnishd/waiter/cache_waiter_kqueue.c
index 8e70af060..b0f097c1b 100644
--- a/bin/varnishd/waiter/cache_waiter_kqueue.c
+++ b/bin/varnishd/waiter/cache_waiter_kqueue.c
@@ -104,8 +104,7 @@ vwk_thread(void *priv)
Wait_Call(w, wp, WAITER_TIMEOUT, now);
}
then = vwk->next - now;
- ts.tv_sec = (time_t)floor(then);
- ts.tv_nsec = (long)(1e9 * (then - ts.tv_sec));
+ ts = VTIM_timespec(then);
Lck_Unlock(&vwk->mtx);
n = kevent(vwk->kq, NULL, 0, ke, NKEV, &ts);
assert(n >= 0);
diff --git a/bin/varnishd/waiter/cache_waiter_ports.c b/bin/varnishd/waiter/cache_waiter_ports.c
index 6ae65290c..362a4d940 100644
--- a/bin/varnishd/waiter/cache_waiter_ports.c
+++ b/bin/varnishd/waiter/cache_waiter_ports.c
@@ -174,8 +174,7 @@ vws_thread(void *priv)
Wait_Call(w, wp, WAITER_TIMEOUT, now);
}
then = vws->next - now;
- ts.tv_sec = (time_t)floor(then);
- ts.tv_nsec = (long)(1e9 * (then - ts.tv_sec));
+ ts = VTIM_timespec(then);
/*
* min number of events we accept. could consider to scale up
diff --git a/tools/coccinelle/archive/vtim_timespec.cocci b/tools/coccinelle/archive/vtim_timespec.cocci
new file mode 100644
index 000000000..0e5d561f6
--- /dev/null
+++ b/tools/coccinelle/archive/vtim_timespec.cocci
@@ -0,0 +1,23 @@
+/*
+ * This patch refactors to VTIM_timespec().
+ */
+
+@@
+expression fval, fmod;
+struct timespec ts;
+type t1, t2;
+@@
+
+- ts.tv_nsec = (t1)(modf(fval, &fmod) * 1e9);
+- ts.tv_sec = (t2)fmod;
++ ts = VTIM_timespec(fval);
+
+@@
+expression fval;
+struct timespec ts;
+type t1, t2;
+@@
+
+- ts.tv_sec = (t1)floor(fval);
+- ts.tv_nsec = (t2)(1e9 * (fval - ts.tv_sec));
++ ts = VTIM_timespec(fval);
More information about the varnish-commit
mailing list