#include #include #include #include #include #define HANDLE_AS_LOCK(handle) (static_cast(handle)->lock) extern "C" { LockHandle tt_lock_alloc_for_path(const char* path) { const auto lock = tt::file::getLock(path); return new LockHolder(lock); } bool tt_lock_acquire(LockHandle handle, TickType_t timeout) { return HANDLE_AS_LOCK(handle)->lock(timeout); } void tt_lock_release(LockHandle handle) { HANDLE_AS_LOCK(handle)->unlock(); } void tt_lock_free(LockHandle handle) { const auto holder = static_cast(handle); delete holder; } }