mirror of
https://github.com/jie65535/mirai-console-jcf-plugin.git
synced 2025-07-28 19:19:15 +08:00
添加线程锁工具
This commit is contained in:
parent
8d70e376df
commit
d5230b926f
19
src/main/kotlin/top/jie65535/jcf/util/LockUtil.kt
Normal file
19
src/main/kotlin/top/jie65535/jcf/util/LockUtil.kt
Normal file
@ -0,0 +1,19 @@
|
||||
package top.jie65535.jcf.util
|
||||
|
||||
import java.util.concurrent.locks.Lock
|
||||
import java.util.concurrent.locks.ReentrantLock
|
||||
|
||||
/**
|
||||
* 线程锁工具
|
||||
*/
|
||||
class LockUtil<out T>(val state: T, val lock: Lock = ReentrantLock()) {
|
||||
|
||||
inline fun <R> withLock(fn: T.()->R): R {
|
||||
try {
|
||||
lock.lock()
|
||||
return fn(state)
|
||||
} finally {
|
||||
lock.unlock()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user