Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Lock {
- private val mutex = nativeHeap.alloc<pthread_mutex_t>()
- init {
- freeze()
- pthread_mutex_init(mutex.ptr, null)
- }
- fun lock() {
- pthread_mutex_lock(mutex.ptr)
- }
- fun unlock() {
- pthread_mutex_unlock(mutex.ptr)
- }
- fun destroy() {
- pthread_mutex_destroy(mutex.ptr)
- nativeHeap.free(mutex)
- }
- fun <T> use(block: () -> T): T {
- try {
- lock()
- return block()
- } finally {
- unlock()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement