Le 19/06/2011 17:19, Chris Angelico a écrit :
On Mon, Jun 20, 2011 at 12:42 AM, Laurent Claessens<moky.m...@gmail.com>  wrote:
    Hello


 I've a list of tasks to perform. Each of them is a threading.Thread.
 Basically I have :

 while task_list :
    task = task_list[0]
    task.run()
    task_list.remove(task)

I'm not understanding what you're doing with threads here. Are you
using threading.Thread but then calling its run() method
synchronously?

Woops yes. I missprinted my example. I was using task.start() of course.

The aim is to copy the content of a repertory (with some conditions on each file, so I cannot use shutils or something).

I've one thread that runs over the repertory and fill the list 'task_list' with taskes from the following class :


class FileCopyTask(threading.Thread):
    def __init__(self,source,destination,old_version):
        threading.Thread.__init__(self)
        self.source = source
        self.destination = destination
    def run(self):
        try :
            shutil.copy(self.source,self.destination)
        except (IOError,OSError),data :
            <WHAT TO PUT HERE ??>
        else :
            print "file copied"


In the same time I've a thread that read the list and perform the operations:

def run():
   while task_list :
      task = task_list[0]
      task_list.remove(task)
      task.start()


My problem is that when FileToCopyTask raises an error, the program does not stop. In fact when the error is Disk Full, I want to stop the whole program because I know that the next task will fail too.

thanks for any help
Laurent


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to