diff options
-rw-r--r-- | sal/osl/unx/interlck.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sal/osl/unx/interlck.c b/sal/osl/unx/interlck.c index 826592a49..e5bb3ea1e 100644 --- a/sal/osl/unx/interlck.c +++ b/sal/osl/unx/interlck.c @@ -160,6 +160,15 @@ oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* { return __sync_sub_and_fetch(pCount, 1); } +#elif ( __GNUC__ > 4 ) || (( __GNUC__ == 4) && ( __GNUC_MINOR__ >= 4 )) +oslInterlockedCount SAL_CALL osl_incrementInterlockedCount(oslInterlockedCount* pCount) +{ + return __sync_add_and_fetch(pCount, 1); +} +oslInterlockedCount SAL_CALL osl_decrementInterlockedCount(oslInterlockedCount* pCount) +{ + return __sync_sub_and_fetch(pCount, 1); +} #else /* use only if nothing else works, expensive due to single mutex for all reference counts */ |