Note that this code does not take a lock around the call to epicsRingBytesPut, because that is not supposed to be required according to the Application Developer’s Guide. The system exhibiting the problem is: You need to log in to change this bug’s status. Andrew Johnson anj wrote on Problem was a reordering of instructions by newer, more aggressive, GCC optimizers.
|Date Added:||26 May 2012|
|File Size:||37.83 Mb|
|Operating Systems:||Windows NT/2000/XP/2003/2003/7/8/10 MacOS 10/X|
|Price:||Free* [*Free Regsitration Required]|
An asyn port driver makes rapid callbacks to asynDevice support for about 10 records.
How To Write Device Support that uses Asyn Driver – EPICS Controls
The asynPrint call in this function was added since asyn R to help in debugging, but otherwise the code is that from asyn R Some of these fields we are allowed or even expected to set, whereas others should not be touched. The system exhibiting the problem is: Other bug subscribers Subscribe someone else. fpics
Comment on this change optional. We’ll assume you’re ok with this, but you can opt-out if you wish. The asyn device support callback function puts each value in a ring buffer and calls scanIoRequest each time.
On several tested systems this works fine, and the record processes exactly as many times as the callback is called, i. This is the code for getCallbackValue: However, this cannot be the only problem. Adding some ‘volatile’ modifiers seems to have fixed the problem. This bug affects 1 person.
System configuration 3 systems were tested. Andrew Johnson anj wrote on To post a comment you must log in. You are not directly subscribed to this bug’s notifications. When running on the problematic Linux system I do see very rare less than 0.
It is a 4-processor system. You need to log in to change this bug’s status.
Email me about changes to this bug report. Accept Reject Read More.
Bug # (mantis) “scanIoRequest is sometimes not process” : Bugs : EPICS Base
Writing software that calls Asyn is confusing until you understand the approach it expects you to use. Once you understand the choices that Asyn has made though, writing the software eipcs actually simpler than it would be without asyn. Getting Started First, you will need to write the code for a basic device support layer. What is an asynUser? Eric Norum wenorum wrote on Problem was a reordering of instructions by newer, more aggressive, GCC optimizers.
This function calls getCallbackValue to read the value from the ring buffer, if any. Note that this code does not take a lock around the call to epicsRingBytesPut, because that is not supposed to be required according to the Application Developer’s Guide. You must use the methods provided by asynManager.
How To Write Device Support that uses Asyn Driver
Bug reported by rivers on