source: doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/cpp/cppLock.hpp @ 5ff9b23

ADTast-experimental
Last change on this file since 5ff9b23 was 6e6989c, checked in by caparsons <caparson@…>, 19 months ago

added mutex stmt benchmarking

  • Property mode set to 100644
File size: 434 bytes
Line 
1class cpp_test_spinlock {
2        volatile bool lockBool = 0;
3
4  public:
5        inline void lock() {
6                for ( ;; ) {
7                        if ( (this->lockBool == 0) && (__atomic_test_and_set( &this->lockBool, __ATOMIC_ACQUIRE ) == 0) ) break;
8                }
9        }
10
11        inline bool try_lock() {
12                return (this->lockBool == 0) && (__atomic_test_and_set( &this->lockBool, __ATOMIC_ACQUIRE ) == 0);
13        }
14
15        inline void unlock() {
16                __atomic_clear( &this->lockBool, __ATOMIC_RELEASE );
17        }
18};
Note: See TracBrowser for help on using the repository browser.