SQLite

Timeline
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

42 check-ins related to "jni-threading"

2023-08-24
14:49
Merge the jni-threading branch into trunk, eliminating the JNI API's prior threading limitations. (check-in: 3739c8aa user: stephan tags: trunk)
14:31
Correct JNI layer's misuse of an sqlite3-internal error-reporting API (no mutex held). Style cleanups. Eliminate lookups of per-thread state by approximately 85% across the test suite. (Closed-Leaf check-in: 1f46ba8d user: stephan tags: jni-threading)
11:57
Add more JNI docs, tests, and a handful of Java-side overloads. (check-in: d19a431f user: stephan tags: jni-threading)
2023-08-23
17:52
JNI cleanups regarding building with certain features disabled. (check-in: a9e6d515 user: stephan tags: jni-threading)
17:15
Remove unnecessary jclass-type struct members. (check-in: d67255f7 user: stephan tags: jni-threading)
16:41
Some thinking-out-loud about how to implement vtabs in Java. In no way complete. (Closed-Leaf check-in: 49c24c29 user: stephan tags: jni-vtab)
13:36
Add a note to the JNI README explaining why the Java API has callback names like xFunc() and xPreUpdate(). (check-in: 415447a3 user: stephan tags: jni-threading)
13:17
Bind sqlite3_preupdate_hook() and friends to JNI. (check-in: d0c425b5 user: stephan tags: jni-threading)
10:36
Bind a subset of sqlite3_config() to JNI: threading modes and sqllog. (check-in: fce8ecaf user: stephan tags: jni-threading)
09:05
Numerous minor cleanups and code style conformance improvements. (check-in: 6c92d884 user: stephan tags: jni-threading)
00:17
Improve C-side exception handling from Java-side UDF callbacks. (check-in: aebbc24a user: stephan tags: jni-threading)
2023-08-22
23:00
Minor Tester1.java cleanups. (check-in: 70d93695 user: stephan tags: jni-threading)
22:13
Fix Tester1 so that exceptions triggered via threads are not silently ignored. Disable auto-extension tests in multi-thread mode because concurrent threads rightfully interfere with that. (check-in: 56b2a077 user: stephan tags: jni-threading)
20:10
More work on the JNI multi-threaded test runner. (check-in: 9a74ad71 user: stephan tags: jni-threading)
18:36
Disassociate JNI db handles from the thread that created them, as it's no longer relevant. (check-in: 8b78b737 user: stephan tags: jni-threading)
17:51
Correct JNI binding of sqlite3_shutdown() to clean up all cached JNIEnv objects. (check-in: 02e86869 user: stephan tags: jni-threading)
17:36
JNI internal cleanups and correct two leaked db handles in test code. (check-in: f927a30b user: stephan tags: jni-threading)
15:30
Move the JNI per-thread cache of NativePointerHolder refs into global space. This allows better-targeted mutex locks and incidentally eliminates the lagginess and post-run hangs in Tester1's multi-thread mode (presumably caused by deadlocks). (check-in: e209f56a user: stephan tags: jni-threading)
11:34
Move most of the per-JNIEnv global Java class refs into the global state, saving a bit of per-thread overhead. (check-in: 7342bf57 user: stephan tags: jni-threading)
2023-08-21
23:45
Minor JNI cleanups. (check-in: b88910aa user: stephan tags: jni-threading)
2023-08-19
14:49
JNI cleanups. (check-in: 0a841310 user: stephan tags: jni-threading)
12:34
Merge trunk into jni-threading branch. (check-in: 8254479c user: stephan tags: jni-threading)
12:32
JNI doc additions. (check-in: 0c7ac34f user: stephan tags: jni-threading)
11:52
JNI test code cleanups. (check-in: e202b6e6 user: stephan tags: jni-threading)
11:26
Minor JNI cleanups. (check-in: 1cecb9e0 user: stephan tags: jni-threading)
10:43
Add multi-thread run mode to JNI Tester1. It works but hangs on exit sometimes for Java reasons as yet not understood. (check-in: bdbaf7a4 user: stephan tags: jni-threading)
08:22
Replace JNI::NewStringUTF() for the remaining cases where output may be incompatible with MUTF-8. It is now only used when we know the output to be plain ASCII. (check-in: 2d955eef user: stephan tags: jni-threading)
08:12
shell.c.in help text typo fix. No functional changes. (check-in: c3190332 user: stephan tags: trunk)
2023-08-17
22:04
Remove some obsolete JNI-internal docs. (check-in: 00a2a373 user: stephan tags: jni-threading)
13:13
Tighten up the JNI auto-ext handling. (check-in: c09c8d05 user: stephan tags: jni-threading)
12:44
Minor internal JNI cleanups and fixes. (check-in: 0e9437de user: stephan tags: jni-threading)
10:49
Remove the FIXME markers related to threading. Code style cleanups. (check-in: 154ab26d user: stephan tags: jni-threading)
2023-08-15
09:26
Minor reshaping of Tester1 moving towards making a multi-threaded run mode. (check-in: f104c14c user: stephan tags: jni-threading)
2023-08-14
17:12
Bring handling of the Java auto-ext handler more in line with the core in terms of locking and mutability during traversal. This removes the explicit synchronous requirement from the Java open() and auto-ext bindings. (check-in: 42994b95 user: stephan tags: jni-threading)
13:27
More work on the JNI-specific mutexes. Rework the NativePointerHolder cache lookup to be slightly simpler and O(1) instead of O(N). (check-in: c84ded0e user: stephan tags: jni-threading)
08:28
JNI-internal docs and removal of obsolete code. (check-in: b62d9325 user: stephan tags: jni-threading)
2023-08-13
20:58
Internal API renaming for clarity's sake. (check-in: 911e4fc5 user: stephan tags: jni-threading)
12:40
Add a mutex for auto-extensions, tied in to the open() process since that's the route into auto-extensions. (check-in: 8da97e0d user: stephan tags: jni-threading)
10:28
Add some docs and metrics for the new mutex internals. (check-in: 33d1780b user: stephan tags: jni-threading)
09:53
An initial attempt at protecting the JNI global state via mutexes at the C level instead of relying on Java's synchronized keyword. It seems to work but increases the run time of the single-threaded SQLTester batch by roughly 3 times. (Correction: it was just run on a slower machine. Cursory testing suggests that runtime performance hit might be, but likely isn't, as high as 10%.) (check-in: c64e6a52 user: stephan tags: jni-threading)
2023-08-12
23:47
Bind sqlite3_interrupt() and sqlite3_is_interrupted() to JNI but with caveats regarding mutexing of the JNIEnv cache. Add a loud warning to the JNI 'dist' target that it should be built with JDK8 (a.k.a. Java 1.8) for compatibility reasons. (check-in: fbf99a24 user: stephan tags: jni-threading)
21:39
Merge the Java Native Interface (JNI) binding into trunk. (check-in: 48b13edc user: stephan tags: trunk)