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

Fredrik Lundh fredrik at pythonware.com
Fri Jan 7 16:49:02 CET 2011


Well, I'd say scanning falls under the "image stuff" umbrella, and the
Sane bindings are shipped with the PIL source code...  I don't know
much about them, though, but I suspect this is a Python GIL issue.

</F>

2010/12/28 Edward Cannon <edward at unicornschool.org>:
> wrong mailing list, this is for PIL and related topics only. Try a
> sane specific mailing list
>
> On Mon, Dec 27, 2010 at 8:58 AM, Sandro Mani <manisandro at gmail.com> wrote:
>> 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
>> _______________________________________________
>> Image-SIG maillist  -  Image-SIG at python.org
>> http://mail.python.org/mailman/listinfo/image-sig
>>
> _______________________________________________
> Image-SIG maillist  -  Image-SIG at python.org
> http://mail.python.org/mailman/listinfo/image-sig
>


More information about the Image-SIG mailing list