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
<2011>
2012
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
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|