vcl: Fix the ldp init check 42/39242/4
authorGao Feng <gfree.wind@outlook.com>
Mon, 17 Jul 2023 14:19:32 +0000 (22:19 +0800)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 8 Aug 2023 04:24:58 +0000 (04:24 +0000)
Maybe some function calls the wrapper funtion like read which invokes
the ldp_init_check in the other libs as a constructor before
ldp_constructor. Then the ldp has been initialized already when
ldp_constructor is invoked. And it's normal case, we shouldn't treat it
as an error.

So ldp_init should return success if ldp is initialized already instead
of an assert.

Type: fix

Change-Id: Ifa2a7b1d5471981a3f840b14a4fa5d48fb1f1374
Signed-off-by: Gao Feng <gfree.wind@outlook.com>
src/vcl/ldp.c

index a8062b4..cc281b0 100644 (file)
@@ -288,7 +288,11 @@ ldp_init (void)
   ldp_worker_ctx_t *ldpw;
   int rv;
 
-  ASSERT (!ldp->init);
+  if (ldp->init)
+    {
+      LDBG (0, "LDP is initialized already");
+      return 0;
+    }
 
   ldp_init_cfg ();
   ldp->init = 1;