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

Reply via email to