[Bdi4emc-help] xfce and axis

Matt Timmermans matt at timmermans.org
Fri Feb 17 05:25:17 CET 2006


----- Original Message ----- 
From: <jepler at unpythonic.net>
> If you start emc from a terminal, then hit control-c after AXIS has
> started, do you get a Python traceback?

Hey, that's a useful feature!  The trace I got is included below.

It looks like the problem is a call in line 640-something in axis, in the 
update method.  It tells something to call the same method again in 20ms and 
then does the update.  If it takes more than 20ms to do the update, bad 
things ensue, including deadlocks on some semaphores.  You might be able to 
replicate the problem by setting the delay to 1ms or so.

When I moved the enqueing call to the end of the update method, axis started 
to work just fine.  I don't know whether or not even that is completely 
safe, however.  Are "TkIntr" callbacks single-threaded?

In any case, that's a lovely UI you have there.

--
Matt

Here's the trace.  ALL this stuff came out when I hit Ctrl-C -- even the two 
lines before "Exception in Tkinter".
----
_sem.c 72: semctl(1409026,0,0) failed: (errno = 1) Operation not permitted
_sem.c 72: semctl(1376257,0,0) failed: (errno = 1) Operation not permitted
Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.3/lib-tk/Tkinter.py", line 1345, in __call__
    return self.func(*args)
  File "/usr/lib/python2.3/lib-tk/Tkinter.py", line 456, in callit
    func(*args)
  File "plat/nonrealtime/bin/axis", line 646, in update
    self.win.set_current_line(self.stat.read_line)
  File "plat/nonrealtime/bin/axis", line 251, in set_current_line
    vupdate(vars.running_line, -1)
  File "plat/nonrealtime/bin/axis", line 571, in vupdate
    if var.get() == val: return
  File "/usr/lib/python2.3/lib-tk/Tkinter.py", line 254, in get
    return getint(self._tk.globalgetvar(self._name))
KeyboardInterrupt

MT> Ctrl-C didn't actually bring the UI down, so I killed it here.

./generic.run: line 605:  7681 Terminated 
plat/nonrealtime/bin/$display -ini $INIFILE
quickstep.ini was not changed.
generic.var was not changed.
Removing shared memory  2490383
resource(s) deleted
Removing semaphore 1507333
resource(s) deleted
Removing shared memory  2523153
resource(s) deleted
Removing semaphore 1540102
resource(s) deleted
Removing shared memory  2326535
resource(s) deleted
Removing semaphore 1343488
resource(s) deleted
Removing shared memory  2359304
resource(s) deleted
Removing semaphore 1376257
resource(s) deleted
Removing shared memory  2392073
resource(s) deleted
Removing semaphore 1409026
resource(s) deleted




More information about the Bdi4emc-help mailing list