2
에 대한 __sync_val_compare_and_swap 기능의 대안 :나는 다음과 같은 방법을 내 프로젝트에있는 오래된 GCC 컴파일러
long compare(long* avar, long comp, long exc)
{
return __sync_val_compare_and_swap(avar, comp, exc);
}
하지만 난 버전의 GCC를 사용하여 내 프로젝트 (예를 들어 이전 버전, 3.4.3)을 컴파일하려면 어떤 지원하지 않습니다 AtomicBuiltins 솔루션의 대안 경로는 무엇입니까 우리의 문제는 무엇입니까? 어떤 종류의 대체 함수 (__sync_val_compare_and_swap의 대안) 또는 __sync_val_compare_and_swap 대신 사용할 수있는 함수 블록입니까?
간단하고 정중 한 접근법은 알고 있고 공식적으로 지원하는 아치를 위해 인라인 asm을 사용하고 다른 모든 gcc 확장자로 폴백 (fallback)하는 것입니다. 그렇게하면 누구든지 충분히 현대적인 컴파일러를 사용하고자한다면 시스템을 아무리 모호하게 할지라도 프로그램을 사용할 수 있습니다. –