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