[odb-users] Mutex may not be released Re: It was blocked by odb::sqlite::connection_pool_factory::create()

Sunny Sun sunny.sun at ringcentral.com
Tue Sep 24 02:19:18 EDT 2024


Hi, Boris:
After upgrading to odb2.5.0, this issue has been resolved. Thanks!

Here I have a new question.
How to build arm64 target odb static lib in x64 platform with msvc?
I tried the following script, but it failed.

bpkg create -d libodb-msvc-release cc^
  config.cxx=cl^
  "config.cc.coptions=/std:c++20 /O2 /MD /Zi /arch:armv8.0"^
  "config.cc.loptions=/MACHINE:ARM64"^
  "config.bin.lib=static"^
  config.install.root="%CurrentFolder%output\Release"

Could you help? Thank you in advance.

Sunny Sun
________________________________
From: Boris Kolpackov <boris at codesynthesis.com>
Sent: Monday, July 29, 2024 9:21 PM
To: Sunny Sun <sunny.sun at ringcentral.com>
Cc: odb-users at codesynthesis.com <odb-users at codesynthesis.com>
Subject: Re: [odb-users] Mutex may not be released Re: It was blocked by odb::sqlite::connection_pool_factory::create()


[EXTERNAL]


Sunny Sun <sunny.sun at ringcentral.com> writes:

> I downloaded the source code here: https://urldefense.com/v3/__https://git.codesynthesis.com/cgit/odb/odb/__;!!J-1DKIBqn-Pi!C-lhggN4IwnFJyVtJZuZ0UK0grancufwYh-RHcDdDKkMqFePtzEKba328-nKS5fq8jrNWAmToX3ViFB2DMKWDw$    and tried to understand:
>
> > In 2.5.0 we have switched to C++11 threading API so maybe that will help.
>
> But from the code I didn’t find out the exact change. What apis/interfaces
> does odb switched?

The Win32-based support is still in 2.5.0 and is unchanged (it will be
dropped in 2.6.0 once we drop support for C++98/03). But by default in
2.5.0 we don't use it, instead using the C++11 threading support. This
is controlled with the ODB_THREADS_* macros, for example:

https://urldefense.com/v3/__https://git.codesynthesis.com/cgit/odb/libodb/tree/odb/details/mutex.hxx__;!!J-1DKIBqn-Pi!C-lhggN4IwnFJyVtJZuZ0UK0grancufwYh-RHcDdDKkMqFePtzEKba328-nKS5fq8jrNWAmToX3ViFAkFqpIxg$


> Could you help analyze it?

I will again suggest that you try 2.5.0 and see if that makes a
difference.


More information about the odb-users mailing list