os walk() and threads problems (os.walk are thread safe?)

Marcus Alves Grando marcus at sbh.eng.br
Tue Nov 13 11:24:41 EST 2007


Diez B. Roggisch wrote:
> Marcus Alves Grando wrote:
> 
>> Hello list,
>>
>> I have a strange problem with os.walk and threads in python script. I
>> have one script that create some threads and consume Queue. For every
>> value in Queue this script run os.walk() and printing root dir. But if i
>> increase number of threads the result are inconsistent compared with one
>> thread.
>>
>> For example, run this code plus sort with one thread and after run again
>> with ten threads and see diff(1).
> 
> I don't see any difference. I ran it with 1 and 10 workers + sorted the
> output. No diff whatsoever.

Do you test in one dir with many subdirs? like /usr or /usr/ports (in 
freebsd) for example?

> 
> And I don't know what you mean by diff(1) - was that supposed to be some
> output?

No. One thread produce one result and ten threads produce another result 
with less lines.

Se example below:

@@ -13774,8 +13782,6 @@
  /usr/compat/linux/proc/44
  /usr/compat/linux/proc/45
  /usr/compat/linux/proc/45318
-/usr/compat/linux/proc/45484
-/usr/compat/linux/proc/45532
  /usr/compat/linux/proc/45857
  /usr/compat/linux/proc/45903
  /usr/compat/linux/proc/46

Regards

-- 
Marcus Alves Grando
marcus(at)sbh.eng.br | Personal
mnag(at)FreeBSD.org  | FreeBSD.org



More information about the Python-list mailing list