В питоне читаю с очень медленного диска (он несколько неисправен и по
этому скорость чтения с него где-то 10-20 кбайт/с)
Для чтения создаю отдельный тред
Пример кода:
buf = ""
def thread_run( ):
try:
fd = open( dev, "r" )
buff = fd.read(16)
fd.close()
finally:
return
thread1 = threading.Thread( target = thread_run )
thread1.setDaemon( 1 )
print "Thread start"
thread1.start()
print "Thread join"
thread1.join( 1.0 )
print "After join"
Так вот, проблемма в том, что примерно один из 10 циклов чтения зависает:
на консоль сыпется:
Thread start
Thread join
After join
...
Thread start
Thread join
И на этом виснет, при этом поток создаётся и находится в Dl+ состоянии (судя по topу)
Может найдется добрый человек, знающий как победить эту напасть
ПО: ядро 2.6.22.5 Python 2.4