Concurrent first calls could initialize det/cls/rec more than once. Double-check each loader under its own lock. Fixes #724 Co-authored-by: Yuzhong Zhang <BetterAndBetterII@users.noreply.github.com>