Indeed there is a bottleneck. IDKit.Find locks structure of all User objects so that fingerprints cannot be added/removed while some identification is in progress. And of course User.Add also needs this lock. The way to solve this problem is to run only Fingerprint constructor in thread1 and run both User.Add and IDKit.Find in thread2. User.Add is a fast operation. The expensive template extraction is performed in Fingerprint constructor.
We cannot run IDKit.Find and User.Add in parallel. They are blocking on Innovatrics.IEngine.WriteLock(ReaderWriterLock)
Modified on: Wed, 9 Sep, 2015 at 9:23 AM
Did you find it helpful?Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.