User story #126
Updated by Ivan Herrero almost 10 years ago
Implement requirement MARTe-EX-F-1.1.12 based on the original MARTe implementation
Note: In order to support fast multi-threading applications it is important for framework developers to guarantee simple atomic operations without having to require to operating system semaphores.
Note: Add 64 bit native support
Note: Use _intrinsic_ in Visual Studio C++ compiler
h1. Source code files modified
* Source/Core/L0Portability/Architecture/x86_cl/AtomicA.h
* Source/Core/L0Portability/Architecture/x86_gcc/AtomicA.h
* Source/Core/L0Portability/Atomic.cpp
* Source/Core/L0Portability/Atomic.h
h1. Architecture & design review
*Date of the review:* 05/06/2015
*Person who did the review:* Andre' Neto
*Version of architecture & design document:* N/A. This is a support class and does not require formal design in UML.
*Result of review:* N/A
*List of non-conformities:* N/A
h1. Code and documentation review
*Date of the review:* 16/06/2015
*Person who did the review:* Ivan Herrero
*Result of review:* FAIL
*List of non-conformities:*
Manual review for Source/Core/L0Portability/Architecture/x86_cl/AtomicA.h
Relax rule "definition for inline functions shall be outside class declaration"
Manual review for Source/Core/L0Portability/Architecture/x86_gcc/AtomicA.h
Relax rule "definition for inline functions shall be outside class declaration"
Manual review for Source/Core/L0Portability/Atomic.cpp
OK file @brief => Says "Header file" instead of "Source file" (copy text from last marte_cpp_code_templates.xml version)
file @details => Says "header" and "declaration" instead of "source" and "definition" (copy text from last marte_cpp_code_templates.xml version)
Manual review for Source/Core/L0Portability/Atomic.h
#include "GeneralDefinitions.h" => Should be on "Project header includes" section
class @details => Should not explain implementation details (AtomicA.h), better explain it on "Inline method definitions" section?
Comment block for method Increment(int32*) => Ending "*/" should be on its own line
@param tag for method Sub(int32*, int32) => Lacks "[in]"
*Note:* Automatic review with cppcheck OK
Note: In order to support fast multi-threading applications it is important for framework developers to guarantee simple atomic operations without having to require to operating system semaphores.
Note: Add 64 bit native support
Note: Use _intrinsic_ in Visual Studio C++ compiler
h1. Source code files modified
* Source/Core/L0Portability/Architecture/x86_cl/AtomicA.h
* Source/Core/L0Portability/Architecture/x86_gcc/AtomicA.h
* Source/Core/L0Portability/Atomic.cpp
* Source/Core/L0Portability/Atomic.h
h1. Architecture & design review
*Date of the review:* 05/06/2015
*Person who did the review:* Andre' Neto
*Version of architecture & design document:* N/A. This is a support class and does not require formal design in UML.
*Result of review:* N/A
*List of non-conformities:* N/A
h1. Code and documentation review
*Date of the review:* 16/06/2015
*Person who did the review:* Ivan Herrero
*Result of review:* FAIL
*List of non-conformities:*
Manual review for Source/Core/L0Portability/Architecture/x86_cl/AtomicA.h
Relax rule "definition for inline functions shall be outside class declaration"
Manual review for Source/Core/L0Portability/Architecture/x86_gcc/AtomicA.h
Relax rule "definition for inline functions shall be outside class declaration"
Manual review for Source/Core/L0Portability/Atomic.cpp
OK file @brief => Says "Header file" instead of "Source file" (copy text from last marte_cpp_code_templates.xml version)
file @details => Says "header" and "declaration" instead of "source" and "definition" (copy text from last marte_cpp_code_templates.xml version)
Manual review for Source/Core/L0Portability/Atomic.h
#include "GeneralDefinitions.h" => Should be on "Project header includes" section
class @details => Should not explain implementation details (AtomicA.h), better explain it on "Inline method definitions" section?
Comment block for method Increment(int32*) => Ending "*/" should be on its own line
@param tag for method Sub(int32*, int32) => Lacks "[in]"
*Note:* Automatic review with cppcheck OK