Hi,

I have a big and potentially slow loop running when updating the folder
summaries. I'm basically initializing a CamelOperation like this:


CamelOperation *cop = camel_operation_registered();
if (!cop) {
        cop = camel_operation_new (NULL, NULL);
        if (!cop) 
                return;
        
        camel_operation_register(cop);
        cop_unreg = TRUE;
}
camel_operation_start(cop, _("Fetching folder summary information"));
camel_operation_progress(cop, 0);


Then in the loop I do like this:

do {
        if (camel_operation_cancel_check(cop)) {
                d("Cancelled");
                camel_exception_set(ex,
                                    CAMEL_EXCEPTION_USER_CANCEL,
                                    _("Fetching folder summary information 
canceled"));
                goto cancelled;
        }
        <do lots of stuff>
cancelled:
        camel_operation_progress(cop, 100);
        camel_operation_end(cop);
        if (cop_unreg)
                camel_operation_unregister(cop);
        camel_operation_unref(cop);
        break;
} while (TRUE);

Now I expect that I'm able to press cancel after pressing f9 and have my
loop exit gracefully. 

In what way do I err?

Thanks,
  jules




_______________________________________________
Evolution-hackers mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/evolution-hackers

Reply via email to