]> err.no Git - varnish/commitdiff
A couple of stylistisc FlexeLint v9 nits, and some additions to the .lnt
authorphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 9 Nov 2008 14:26:24 +0000 (14:26 +0000)
committerphk <phk@d4fa192b-c00b-0410-8231-f00ffab90ce4>
Sun, 9 Nov 2008 14:26:24 +0000 (14:26 +0000)
file.

Unfortunately the thread support in FlexeLint is not quite up to our
standards of creative locking.

git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@3365 d4fa192b-c00b-0410-8231-f00ffab90ce4

varnish-cache/bin/varnishd/cache.h
varnish-cache/bin/varnishd/cache_acceptor_poll.c
varnish-cache/bin/varnishd/flint.lnt

index 78b1e90db6d0312fd4564ca037b144401c0e1c78..9bac7e527c61d7fb58ed751c7cb1cd126dcadaef 100644 (file)
@@ -615,6 +615,22 @@ void SMS_Finish(struct object *obj);
 #define MTX                    pthread_mutex_t
 #define MTX_INIT(foo)          AZ(pthread_mutex_init(foo, NULL))
 #define MTX_DESTROY(foo)       AZ(pthread_mutex_destroy(foo))
+
+#ifdef __flexelint_v9__
+#define TRYLOCK(foo, r)                                                \
+do {                                                           \
+       (r) = pthread_mutex_trylock(foo);                       \
+} while (0)
+#define LOCK(foo)                                              \
+do {                                                           \
+       AZ(pthread_mutex_lock(foo));                            \
+} while (0)
+#define UNLOCK(foo)                                            \
+do {                                                           \
+       AZ(pthread_mutex_unlock(foo));                          \
+} while (0)
+
+#else
 #define TRYLOCK(foo, r)                                                \
 do {                                                           \
        (r) = pthread_mutex_trylock(foo);                       \
@@ -652,6 +668,7 @@ do {                                                                \
                    "MTX_UNLOCK(%s,%s,%d," #foo ")",            \
                    __func__, __FILE__, __LINE__);              \
 } while (0)
+#endif
 
 #if defined(HAVE_PTHREAD_MUTEX_ISOWNED_NP)
 #define ALOCKED(mutex)         AN(pthread_mutex_isowned_np((mutex)))
@@ -693,8 +710,7 @@ Tlen(const txt t)
 {
 
        Tcheck(t);
-       return
-           ((unsigned)(t.e - t.b));
+       return ((unsigned)(t.e - t.b));
 }
 
 static inline void
index d9a0b19fe8bc801b17f7c41c66a62bcc7c7d01b9..336edd64c2247315ebca89b396130c0764bf3a9a 100644 (file)
@@ -55,7 +55,7 @@ static void
 vca_pollspace(unsigned fd)
 {
        struct pollfd *newpollfd = pollfd;
-       unsigned newnpoll = npoll;
+       unsigned newnpoll;
 
        if (fd < npoll)
                return;
index 480c7a9d1e78fd5c66a2deb6862a05f0aa164374..a5e83ecdf3b9813738af6f564118a42c083667c4 100644 (file)
@@ -1,4 +1,46 @@
--passes=3
+
+-d__flexelint_v9__=1
+
+//-sem (pthread_mutex_lock, thread_lock)
+-sem (pthread_mutex_trylock, thread_lock)
+-sem (VBE_DropRefLocked, thread_unlock)
+-e459  // unlocked access from func-ptr
+-e454  // mutex not released (...ReleaseLocked)
+-e457  // unprotected access
+
+-esym(458, lbv_assert) // unlocked access
+-esym(458, params)     // unlocked access
+
+-emacro(835, HTTPH)    // Info 835: A zero has been given as left argument to operator '&'
+-emacro(845, HTTPH)    // Info 845: The left argument to operator '&&' is certain to be 0
+//////////////
+-efunc(1791, pdiff)    // return last on line
+//////////////
+-efile(451, "sys/*.h") // No include guard
+-efile(451, "machine/*.h")     // No include guard
+-efile(451, "vcl_returns.h")   // No include guard
+-efile(451, "cache_backend_poll.h")    // No include guard
+-efile(451, "steps.h") // No include guard
+-efile(451, "http_headers.h")  // No include guard
+-efile(451, "stat_field.h")    // No include guard
+-efile(451, "acct_fields.h")   // No include guard
+-efile(451, "config.h")        // No include guard
+//////////////
+// -e458                       // unprotected access
+// -e456                       // merged locking paths
+-sem(vca_thread_acct, thread_mono)
+-sem(vca_epoll_thread, thread_mono)
+-sem(vca_kqueue_thread, thread_mono)
+-sem(vca_poll_thread, thread_mono)
+-sem(vca_ports_thread, thread_mono)
+-sem(exp_timer, thread_mono)
+-sem(wrk_herdtimer_thread, thread_mono)
+-sem(wrk_herder_thread, thread_mono)
+-esym(458, VSL_stats)
+-esym(458, heritage)
+-esym(458, name_key)
+//////////////
+-passes=1
 
 +libh mgt_event.h
 +libh ../../config.h