diff --git a/lib/toolbox/api_lock.h b/lib/toolbox/api_lock.h index ae9ba3ab2..900fafd09 100644 --- a/lib/toolbox/api_lock.h +++ b/lib/toolbox/api_lock.h @@ -1,6 +1,30 @@ #pragma once #include +/* +Testing 10000 api calls + +No lock + Time diff: 445269.218750 us + Time per call: 44.526920 us + +furi_thread_flags + Time diff: 430279.875000 us // lol wtf? smaller than no lock? + Time per call: 43.027988 us // I tested it many times, it's always smaller + +FuriEventFlag + Time diff: 831523.625000 us + Time per call: 83.152359 us + +FuriSemaphore + Time diff: 999807.125000 us + Time per call: 99.980713 us + +FuriMutex + Time diff: 1071417.500000 us + Time per call: 107.141747 us +*/ + typedef FuriEventFlag* FuriApiLock; #define API_LOCK_EVENT (1U << 0) @@ -16,4 +40,4 @@ typedef FuriEventFlag* FuriApiLock; #define api_lock_wait_unlock_and_free(_lock) \ api_lock_wait_unlock(_lock); \ - api_lock_free(_lock); + api_lock_free(_lock); \ No newline at end of file