diff options
Diffstat (limited to 'addons/hw_drivers/controllers/driver.py')
| -rwxr-xr-x | addons/hw_drivers/controllers/driver.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/addons/hw_drivers/controllers/driver.py b/addons/hw_drivers/controllers/driver.py index 9a6764b7b23..0bd0286c3d5 100755 --- a/addons/hw_drivers/controllers/driver.py +++ b/addons/hw_drivers/controllers/driver.py @@ -1,7 +1,7 @@ #!/usr/bin/python3 import logging import time -from threading import Thread, Event +from threading import Thread, Event, Lock from usb import core from gatt import DeviceManager as Gatt_DeviceManager import subprocess @@ -353,7 +353,8 @@ class Manager(Thread): def printer_loop(self): printer_devices = {} - devices = conn.getDevices() + with cups_lock: + devices = conn.getDevices() for path in [printer_lo for printer_lo in devices if devices[printer_lo]['device-make-and-model'] != 'Unknown']: if 'uuid=' in path: serial = sub('[^a-zA-Z0-9 ]+', '', path.split('uuid=')[1]) @@ -443,6 +444,7 @@ class SocketManager(Thread): conn = cups_connection() PPDs = conn.getPPDs() printers = conn.getPrinters() +cups_lock = Lock() # We can only make one call to Cups at a time m = Manager() m.daemon = True |
