Attached find a test that abstracts all the file i/o away, and seemingly shows that there *is* a problem with concurrent hashtables access to ABCL.
CL-USER> (run 1) Spawning 1 threads... Done. Spawned threads that should sum to 10 while the shared value is 10. NIL CL-USER> (run 10) Spawning 10 threads... Done. Spawned threads that should sum to 100 while the shared value is 100. NIL CL-USER> (run 100) Spawning 100 threads... Done. Spawned threads that should sum to 1000 while the shared value is 993. NIL
In this test, each thread sleeps for (/ (random 1000) 1000) seconds to allow contentions to arise.
Inspection of the code and observations of whether this test should be expected to "fail" for some other problem are solicited.