ulib/3party/sqlpp11/docs/Threads.md
tqcq 99c258107b
All checks were successful
rpcrypto-build / build (Release, hisiv510.toolchain.cmake) (push) Successful in 1m24s
rpcrypto-build / build (Debug, himix200.toolchain.cmake) (push) Successful in 1m30s
rpcrypto-build / build (Debug, hisiv510.toolchain.cmake) (push) Successful in 1m43s
linux-mips64-gcc / linux-gcc-mips64el (push) Successful in 1m47s
linux-x64-gcc / linux-gcc (push) Successful in 2m11s
rpcrypto-build / build (Release, himix200.toolchain.cmake) (push) Successful in 3m19s
linux-hisiv500-gcc / linux-gcc-hisiv500 (push) Successful in 3m39s
feat/support_orm (#2)
Co-authored-by: tqcq <99722391+tqcq@users.noreply.github.com>
Reviewed-on: #2
2024-01-06 13:56:45 +00:00

988 B

Thread Safety

sqlpp11 aspires to have no influence on thread safety itself, but offers no particular guarantees (PRs welcome). This means that in the general case your program may have problems if it does one of the following

  • Creates a connection in one thread and then uses it in another thread..
  • Uses the same connection simultaneously in multiple threads.

The exact level of thread-safety depends on the underlying client library, for example with MySQL, PostgreSQL and SQLite3 it is generally safe to create a connection in one thread and then use it in another thread, but attempting to use the same connection simultaneously in multiple threads causes crashes, lock-ups and SQL errors.

The recommendation therefore is to not share connections between threads and to read about thread safety of the underlying database for more information. You may also look into Connection Pools as a way to make SQL queries simultaneously in multiple threads.