Jeff and Andrew,
As I mentioned in this March 11 post, I ran into a problem recently
where a vendor's driver library was using the new Posix 1.b timer
routines. Those routines generate SIGALARM signals, and can cause many
system calls to terminate prematurely with the errno=EINTR.
Andrew and I fixed the Posix implementation of epicsThreadSleep to be
compatible with this.
What I forgot to mention in that earlier post is that the IOC that uses
that vendor's driver produces the following messages from Channel
Access.
CAS: UDP recv error (errno=Interrupted system call)
CAS: UDP recv error (errno=Interrupted system call)
CAS: UDP recv error (errno=Interrupted system call)
CAS: UDP recv error (errno=Interrupted system call)
Is this just a warning message that should be removed, because
interrupted system calls should now be considered "normal"? Or is it
more serious?
Are there other places in Channel Access or other parts of EPICS where
we need to make changes to correctly handle interrupted system calls?
What about epicsEventWaitWithTimeout(), etc.?
Mark
-----Original Message-----
From: Mark Rivers
Sent: Wednesday, March 11, 2009 5:25 PM
To: 'John M. Skinner'
Cc: 'Robert Sweet'; '[email protected]';
[email protected]
Subject: Prosilica cameras and bug in EPICS signal handlers
Dear John,
I know it's too late for your new camera purchase, but I want to let you
know that I did get the Prosilica cameras working fine with Linux today.
It turns out that it was really a bug in EPICS, not in their driver.
EPICS was installing signal handlers in an obsolete manner that is
incompatible with the new Posix 1.b interval timer library.
With a minor change to the EPICS signal handler functions I can control
Prosilica cameras from Linux with no problem.
EPICS needs additional work to be compatible with the Posix 1.b timer
routines. These can cause many system calls to terminate prematurely
with the errno=EINTR. I had to modify the epicsThreadSleep function to
work properly when Posix timers were running, and there will almost
certainly be other places where system calls need to be checked error
returns for this reason. It's a lot of work, but other developers are
beginning to use these timer functions in their code, and we need to be
able to use code in EPICS.
Cheers,
Mark
- References:
- Prosilica cameras and bug in EPICS signal handlers Mark Rivers
- Navigate by Date:
- Prev:
Re: RTEMS-mvme5500 BSP update Kate Feng
- Next:
Re: Alarm Limits Benjamin Franksen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
<2009>
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Prosilica cameras and bug in EPICS signal handlers Mark Rivers
- Next:
RE: Inter-IOC link problems Shepherd, EL (Emma)
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
<2009>
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|