From 0fe8e10bc5e4c107311fda1fc9f175a39e27160e Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 17 Jan 2011 08:38:00 +0000 Subject: multithreaded TDB is dangerous, discourage it Lets just avoid threads for now :) The torture test still fails and there doesn't appear to be a good way to fix it without upstream supporting it. --- README | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'README') diff --git a/README b/README index 9a19e3c..b14a9a5 100644 --- a/README +++ b/README @@ -15,7 +15,7 @@ write to the same databases used by Samba! and child processes. * Releases the GVL for slow disk operations under Ruby 1.9 so - other threads can run (but not other TDB operations on the same file) + other threads can run (but not other TDB operations! see Caveats below) * Includes several {hash functions}[link:Hash_Functions.html] not included by upstream TDB. @@ -25,10 +25,12 @@ write to the same databases used by Samba! These caveats will be addressed upstream in {TDB2}[http://mid.gmane.org/201008021002.47351.rusty@rustcorp.com.au] -* NOT native thread-safe by default, you MUST initialize your TDB - objects with :threadsafe => true or call - TDB#threadsafe! on each TDB object if you run with threads - under Ruby 1.9 (but not 1.8). +* NOT native thread-safe. Don't try accessing TDB objects from + multiple threads at the same time. This probably needs to be + fixed upstream since our attempts to make it work have failed. + + However, TDB will allow other Ruby 1.9 threads to run doing non-TDB + things just fine. * Database size is limited to 4G, even on 64-bit systems. -- cgit v1.2.3-24-ge0c7