Hello everyone, I'm David Hinkle, and I'm the Sr. Dev at http://cipafilter.com
We have a firewall A/V product that we sell, and to compliment it we want to offer our customers a real time scanner for their windows machine. I have finished that work... I have a milifilter dirver for windows that instructs a userspace application on what files to scan. My userspace application is a multithreaded service that scans files in worker threads and communicates with the driver. However, I have a problem with libclamav's multithreading. If I load one copy of the database per thread everything runs fine (Although at the expense of a large amount of ram), however... If I only load 1 global copy of the database then there seems to be some sort of bottleneck in the libclamav library that causes everything to just sit on one CPU. I've spent all day looking through the library and I can't figure out where it might be. I don't see any mutexes that could case this.... Are you guys doing something else to force everything to be syncronouse? It must be related to the cl_engine structure... because if I load one copy of the structure per thread everything is fine... but I don't see anything in there that looks like a lock. Can anybody shed some light on this? David _______________________________________________ http://lurker.clamav.net/list/clamav-devel.html