[Image-SIG] [python-imaging-sane] get_devices and threading

Sandro Mani manisandro at gmail.com
Mon Dec 27 17:58:31 CET 2010


Hi,
I wanted to execute sane.get_devices in a separate thread, i.e. consider 
the following program:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import threading
import sane
import time

devices=None

class GetDevicesThread(threading.Thread):
     def __init__(self):
         threading.Thread.__init__(self)
         self.setDaemon(True)

     def run(self):
         global devices
         #time.sleep(10)
         #devices=[]
         devices=sane.get_devices()

sane.init()
GetDevicesThread().start()
print "Detecting devices"
while devices==None:
     time.sleep(1)
     print "."
print devices

The devices=sane.get_devices() call in run() for some reason pauses the 
main thread during it's execution - if I switch the statement with the 
two commented lines above, all works as expected. Is there any 
particular reason for this behaviour?
Thanks
Sandro Mani


More information about the Image-SIG mailing list