EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base
From: Jeff Hill <[email protected]>
To: [email protected]
Date: Sat, 06 Aug 2011 00:21:39 -0000
The proposal to merge lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base has been updated.

Description changed to:

This is my atomic set/get/incr/decr/test-and-set library which I have reworked quite a bit in the last week. I need to start merging other things for which this is a prerequisite.

The basic strategy is to look for a compiler intrinsic first, then an os specific primitive, and finally to fall back on a global mutex.

At a minimum Andrew, Janet, and Michael should have a look at this.

In particular I made changes in the build system so that we can install compiler, in addition to os  specific header files. That makes it very clean to check with the compiler first to see if it can implement these operations with its intrinsics. We don't end up with endless permutations of compiler specific ifdefs in the os dependent headers. I also made 586 (pentium circa 1995) the minimum architecture by default for mingw and linux so that we can have an efficient implementation.

I have tested this on windows/msvc, windows/gcc, and linux/gcc (see epicsAtomicTest and epicsAtomicPerform in the libCom test directory). I am having troubles building for solaris here due to perl compatibility issues and also it maybe doesn't help that much because we don't have 5.10 and I wouldn't be able to test the os primitives (only the global lock version). The vxWorks code has been built successfully for old and recent vxWorks, but I haven't run the tests yet. I suspect that RTEMS may just work because the same gcc compiler intrinsics will be used as linux.

all comments appreciated

thanks for your consideration

For more details, see:
https://code.launchpad.net/~epics-core/epics-base/epicsR3.15-atomics/+merge/70642
-- 
https://code.launchpad.net/~epics-core/epics-base/epicsR3.15-atomics/+merge/70642
Your team EPICS Core Developers is requested to review the proposed merge of lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base.


References:
[Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Jeff Hill

Navigate by Date:
Prev: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Jeff Hill
Next: c++ static initialization Jeff Hill
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Jeff Hill
Next: RE: [Merge] lp:~epics-core/epics-base/epicsR3.15-atomics into lp:epics-base Jeff Hill
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·