Experimental Physics and
| |||||||||||||||||
|
If you look at the documentation for ca_sg_block(), which is at http://www.aps.anl.gov/epics/base/R3-14/9-docs/CAref.html#ca_sg_block You'll see that it doesn't currently have any return code that means "operation failed". ECA_NORMAL means success so it can't return that, and if the time period you specified hasn't passed yet then ECA_TIMEOUT isn't appropriate. The other two codes documented are associated with bad arguments, so it must have been designed to work that way. If it works as intended, what is the correct way to handle failing synchronous writes to records with DISP=1 without timing out? What is setting the record's DISP field, and why do you expect any different behaviour than that which you're seeing? The DISP field is documented in the Record Reference Manual as meaning "disable/ignore all puts to other fields of this record" and CA flags that as a failure. The CA timeout operations don't mean "retry the operations for this time period"; if you want retries you'll have to code them yourself I'm afraid. I think you may have discovered one reason why the ca_sg_ functions aren't quite as useful as they initially seem, which is probably why they're not used very much. - Andrew -- The right to be heard does not automatically include the right to be taken seriously. -- Hubert H. Humphrey
| ||||||||||||||||
ANJ, 10 Nov 2011 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |