Several RTEMS OSI calls not safe from ISR

Bug #999844 reported by till
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
EPICS Base
Invalid
Undecided
Unassigned

Bug Description

Some OSI calls should be safe to call from an ISR

epicsEventSignal()
epicsThreadResume()

and maybe

epicsThreadGetPriority()

These routines check the return status of the underlying
RTEMS calls and use errlogPrintf() to report failure which
is illegal from ISR context.

Revision history for this message
mdavidsaver (mdavidsaver) wrote :

errlogPrintf() contains a short-circuit if it is called from interrupt context. So while an error message won't be informative, I think these functions are safe to call from an ISR.

> if (epicsInterruptIsInterruptContext()) {
> epicsInterruptContextMessage
> ("errlogPrintf called from interrupt level\n");
> return 0;
> }

Changed in epics-base:
status: New → Invalid
Revision history for this message
Andrew Johnson (anj) wrote :

I wrote this code that outputs the actual errlogPrintf() message when it gets called from an ISR, but I wasn't sure whether it was a good idea to call tvsnPrint() at ISR level so I never applied it. Comments either way?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.