EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: [Merge] ~bfrk/epics-base:zero-size-array-request into epics-base:7.0
From: Ralph Lange via Core-talk <core-talk at aps.anl.gov>
To: mp+381308 at code.launchpad.net
Date: Fri, 27 Mar 2020 15:54:27 -0000
Re:
> The data pointer dbfl_ref.field can now either point to a copy owned by a
> filter, or it can point to the original data owned by a record. In the
> latter case, the dbfl_ref.dtor is NULL. This required adding
> db_field_log.offset as a new member. It gets initialized, together with the
> no_elements member, by a call to the rset.get_array_info, so we can continue
> to support the wrap-around/ring-buffer feature for array fields.

Careful.
Consider a record that does circular buffering.
While the dbfl is on the queue, the buffer circulates further. Any offset that
is retrieved through rset.get_array_info is volatile and must only be used while
record lock is held. Storing the offset for later use is not appropriate.
The two options for array type dbfl are:
 1. data is owned by the dbfl, contiguous, on the heap (no wrap-around)
    and must be destructed after post-queue processing is done.
 2. data is in the record and post-queue processing retrieves it using
    rset.get_array_info (supporting wrap-around).

Wrap-around must be supported by whatever uses rset.get_array_info. I.e., either
a filter or the post-queue processing copying the array (or a subset) into a
different buffer.
-- 
https://code.launchpad.net/~bfrk/epics-base/+git/epics-base/+merge/381308
Your team EPICS Core Developers is requested to review the proposed merge of ~bfrk/epics-base:zero-size-array-request into epics-base:7.0.

References:
[Merge] ~bfrk/epics-base:zero-size-array-request into epics-base:7.0 Ben Franksen via Core-talk

Navigate by Date:
Prev: [Merge] ~bfrk/epics-base:zero-size-array-request into epics-base:7.0 Ben Franksen via Core-talk
Next: Lessons learned investigating EPICS Base build failures Ralph Lange via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: [Merge] ~bfrk/epics-base:zero-size-array-request into epics-base:7.0 Ben Franksen via Core-talk
Next: Re: [Merge] ~bfrk/epics-base:zero-size-array-request into epics-base:7.0 Ben Franksen via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 28 Mar 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·