Files
rdkit/External
Greg Landrum 06027dcd05 Remove unnecessary mutex in InChI wrapper (#4680)
* External/INCHI-API: drop unnecessary mutex

A mutex was introduced in 6cfd34 from 2012 around all InChI library
calls, and InChI v1.05 release notes from 2017 announce that they fixed
race conditions to support multithreading.

We find that the InChI library mutex is no longer necessary with v1.05
and this patch removes it, which enables rdkit users to concurrently
call InChI-related methods.

This patch also updates the InChI multithreading tests to cover
`MolBlockToInchi`, so we have test coverage of concurrently making all
InChI calls.

I ran `testInchi` under asan 200x and all runs passed cleanly.  I was
unable to configure the build toolchain with msan or tsan, so it is
unclear to me if those sanitizers would flag any issues.

* External/INCHI-API: add second multithreading test

This test covers case where immediate concurrent usage of the InChI
library leads to memory corruption.

* remove ASAN workaround (not needed for InChI 1.06)
clang-format run
update inchi version to 1.06 in docs

Co-authored-by: Jin Pan <jinxp1@gmail.com>
2021-11-10 04:08:30 +01:00
..
2021-07-15 10:26:29 -04:00
2021-08-20 11:23:39 +02:00
2019-12-18 16:44:55 +01:00
2021-01-05 09:27:33 -05:00