On Friday, February 21, 2014 23:06:57 Mark Rivers wrote:
> For non-array records the asyn device support has a "ring buffer" that
> stores a certain number of callback values from the driver. The
> default ring buffer size is 10. In this case if several driver
> callbacks happen faster than the scanIORequest can complete the
> record will post monitors on all of them. But eventually if the
> callbacks happen too fast the ring buffer will overflow and values
> will be lost.
> For array records like you are using there is no ring buffer, because
> the size could be very large and it would involve copying a large
> amount of data.
There is no need to do large amounts of copying. You simply have to
allocate a new array before filling it with new data, instead of
overwriting a previously allocated one. Then all the arrays can be
easily and safely cached/buffered/queued by reference. Indeed there is
no need to *ever* copy such an array except, maybe, when finally sending
it over the network.
Cheers
Ben
--
"Make it so they have to reboot after every typo." ― Scott Adams
Attachment:
signature.asc
Description: This is a digitally signed message part.
- Replies:
- Re: Waveform record I/O interrupt. asyn Andrew Johnson
- References:
- Waveform record I/O interrupt. asyn Vishnu Patel
- RE: Waveform record I/O interrupt. asyn Mark Rivers
- Navigate by Date:
- Prev:
Re: epics on beaglebone Takashi OBINA
- Next:
Re: epics on beaglebone D Peter Siddons
- 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:
RE: Waveform record I/O interrupt. asyn Mark Rivers
- Next:
Re: Waveform record I/O interrupt. asyn Andrew Johnson
- 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
|