Ticket #2240: mc-4.7.4-copy-queue.patch

File mc-4.7.4-copy-queue.patch, 1.6 KB (added by danilo.schembri, 14 years ago)
  • mc-4.7.4/src/background.c

    old new  
    7575register_task_running (FileOpContext * ctx, pid_t pid, int fd, int to_child, char *info) 
    7676{ 
    7777    TaskList *new; 
     78    TaskList *p = task_list; /* Dany */ 
    7879 
    7980    new = g_new (TaskList, 1); 
    8081    new->pid = pid; 
    8182    new->info = info; 
    8283    new->state = Task_Running; 
     84 
     85/* Dany is "Danilo Schembri" <danilo.schembri@gmail.com> 
     86   Dany: copy/move queue handling - Begin */ 
     87    while (p){ 
     88        if (p->state == Task_Running){ 
     89            new->state = Task_Stopped; 
     90            kill (pid, SIGSTOP); 
     91            break; 
     92        } 
     93        p = p->next; 
     94    } 
     95/* Dany: file copy/move queue handling - End */ 
     96 
    8397    new->next = task_list; 
    8498    new->fd = fd; 
    8599    new->to_child_fd = to_child; 
     
    93107{ 
    94108    TaskList *p = task_list; 
    95109    TaskList *prev = 0; 
     110    TaskList *presume = 0; /* Dany: Remaining task list. */ 
    96111 
    97112    while (p) 
    98113    { 
     
    104119                task_list = p->next; 
    105120            g_free (p->info); 
    106121            g_free (p); 
     122 
     123/* Dany: copy/move queue handling - Begin */ 
     124            if (prev && prev->state == Task_Stopped){ 
     125              prev->state = Task_Running; 
     126              kill (prev->pid, SIGCONT); 
     127            } else if (!prev || prev->state != Task_Running) 
     128                presume = task_list; // Dany: Save remaining task list. 
     129 
     130            while (presume){ 
     131                if (presume->state == Task_Stopped){ 
     132                    presume->state = Task_Running; 
     133                    kill (presume->pid, SIGCONT); 
     134                    break; 
     135                } 
     136                presume = presume->next; 
     137            } 
     138/* Dany: copy/move queue handling - End */ 
     139 
    107140            return p->fd; 
    108141        } 
    109142        prev = p;