diff --git a/src/bin/e_fm_op.c b/src/bin/e_fm_op.c index 7bdf33de2..5fc506283 100644 --- a/src/bin/e_fm_op.c +++ b/src/bin/e_fm_op.c @@ -604,7 +604,7 @@ _e_fm_op_work_idler(void *data) return 1; } - if (_e_fm_op_scan_idler_p == NULL) + if (_e_fm_op_scan_idler_p == NULL && !_e_fm_op_work_error && !_e_fm_op_scan_error) { ecore_main_loop_quit(); } @@ -677,6 +677,8 @@ _e_fm_op_scan_idler(void *data) return 0; } + if (_e_fm_op_idler_handle_error(&_e_fm_op_scan_error, &_e_fm_op_scan_queue, &node, task)) return 1; + if (_e_fm_op_abort) { /* We're marked for abortion. */ @@ -684,8 +686,6 @@ _e_fm_op_scan_idler(void *data) return 0; } - if (_e_fm_op_idler_handle_error(&_e_fm_op_scan_error, &_e_fm_op_scan_queue, &node, task)) return 1; - if (task->type == E_FM_OP_COPY_STAT_INFO) { _e_fm_op_scan_atom(task);