On Thu, 2004-03-11 at 20:18, Robert Blayzor wrote:
> I didn't get any responses on this, so I'm trying a repost of this:
>
> Using clamd devel-20040304 on FreeBSD 4.9
>
> On several occasions now we've noticed that when clamd checks and reloads
> the virus database current clamdscan's hang and then time out.
>
>
Hmm. Do you have a low level of clamd usage?
Could you try the enclosed patch, and let me know if it helps/doesn't
help?
Cheers,
-trog
--- clamd/thrmgr.c.orig 2004-03-11 21:34:08.000000000 +0000
+++ clamd/thrmgr.c 2004-03-11 21:36:28.000000000 +0000
@@ -174,13 +174,12 @@
timeout.tv_nsec = 0;
threadpool->thr_idle++;
while (((job_data=work_queue_pop(threadpool->queue)) == NULL)
- && (threadpool->state != POOL_EXIT)) {
+ && !must_exit) {
/* Sleep, awaiting wakeup */
retval = pthread_cond_timedwait(&(threadpool->pool_cond),
&(threadpool->pool_mutex), &timeout);
- if (retval == ETIMEDOUT) {
+ if ((retval == ETIMEDOUT) || (threadpool->state == POOL_EXIT))
{
must_exit = TRUE;
- break;
}
}
threadpool->thr_idle--;