User Guide

Contents

Explicit Locking

Use
ANNOTATE_LOCK_ACQUIRE
and
ANNOTATE_LOCK_RELEASE
to specify explicit locking. These annotations are simple executable statements you can put wherever is most convenient. For example:
if (synchronization_needed) ANNOTATE_LOCK_ACQUIRE(0); x = f(x, a); if (synchronization_needed) ANNOTATE_LOCK_RELEASE(0);
You must make sure you match the lock acquires and releases, and both occur in the same task. Your program will get synchronization errors if a task releases a lock that it does not own, or acquires a lock and fails to release it. You can acquire a lock in one function and release it in a different function, but it is a poor practice.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804