Changeset ce9f9d4 for benchmark/bench.h


Ignore:
Timestamp:
Sep 16, 2021, 2:19:57 PM (3 years ago)
Author:
caparsons <caparson@…>
Branches:
ADT, ast-experimental, enum, forall-pointer-decay, master, pthread-emulation, qualifiedEnum
Children:
a8367eb
Parents:
a5d1fe7
Message:

added mutexstmt benchmark to make

File:
1 edited

Legend:

Unmodified
Added
Removed
  • benchmark/bench.h

    ra5d1fe7 rce9f9d4  
    2121        return 1000000000LL * ts.tv_sec + ts.tv_nsec;
    2222} // bench_time
     23
     24
     25#if defined(__cforall)
     26struct test_spinlock {
     27        volatile bool lock;
     28};
     29
     30static inline void lock( test_spinlock & this ) {
     31        for ( ;; ) {
     32                if ( (this.lock == 0) && (__atomic_test_and_set( &this.lock, __ATOMIC_ACQUIRE ) == 0) ) break;
     33        }
     34}
     35
     36static inline void unlock( test_spinlock & this ) {
     37        __atomic_clear( &this.lock, __ATOMIC_RELEASE );
     38}
     39#endif
    2340
    2441#ifndef BENCH_N
Note: See TracChangeset for help on using the changeset viewer.