summaryrefslogtreecommitdiff
path: root/pyparallel/parallel/parallelppdev.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyparallel/parallel/parallelppdev.py')
-rw-r--r--pyparallel/parallel/parallelppdev.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/pyparallel/parallel/parallelppdev.py b/pyparallel/parallel/parallelppdev.py
index 98e1e84..df9cf2d 100644
--- a/pyparallel/parallel/parallelppdev.py
+++ b/pyparallel/parallel/parallelppdev.py
@@ -183,15 +183,21 @@ class Parallel:
self.device = port
else:
self.device = "/dev/parport%d" % port
+ self._fd = None
self._fd = os.open(self.device, os.O_RDWR)
- #~ self.PPEXCL()
- self.PPCLAIM()
- self.setDataDir(1)
- self.setData(0)
+ try:
+ self.PPEXCL()
+ self.PPCLAIM()
+ self.setDataDir(1)
+ self.setData(0)
+ except IOError:
+ os.close(self._fd)
+ self._fd = None
+ raise
def __del__(self):
- self.PPRELEASE()
if self._fd is not None:
+ self.PPRELEASE()
os.close(self._fd)
def timevalToFloat(self, timeval):