Fix a spinning smbd when printing
authorVolker Lendecke <vl@samba.org>
Tue, 30 Dec 2008 13:05:26 +0000 (14:05 +0100)
committerVolker Lendecke <vl@samba.org>
Tue, 30 Dec 2008 13:14:06 +0000 (14:14 +0100)
Without this, we end up adding more than one timed event. In the event handler
print_notify_event_send_messages() only one event will be deleted, all others
will fire indefinitely.

source3/printing/notify.c

index f6599c413d042bb159f76bed503c0abe9f61a26b..b24a8a52f599048961f88282669448b6631f8f8a 100644 (file)
@@ -322,7 +322,7 @@ to notify_queue_head\n", msg->type, msg->field, msg->printer));
        DLIST_ADD_END(notify_queue_head, pnqueue, struct notify_queue *);
        num_messages++;
 
-       if (smbd_event_context()) {
+       if ((notify_event == NULL) && (smbd_event_context() != NULL)) {
                /* Add an event for 1 second's time to send this queue. */
                notify_event = event_add_timed(smbd_event_context(), NULL,
                                        timeval_current_ofs(1,0),