mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 05:50:30 +00:00
fix rlock compilation failure (#15584)
* change SysLockType_Reentrant fix edge case where using SysLockType_Reentrant doesn't trigger an #include pthread.h * syslocktype_reentrant now a var * remove nodecl to remove empty system_syslocks.c * let is better than var. in reality SysLockType = enum, maybe that would be a better fix
This commit is contained in:
@@ -24,7 +24,7 @@ proc initRLock*(lock: var RLock) {.inline.} =
|
||||
when defined(posix):
|
||||
var a: SysLockAttr
|
||||
initSysLockAttr(a)
|
||||
setSysLockType(a, SysLockType_Reentrant())
|
||||
setSysLockType(a, SysLockType_Reentrant)
|
||||
initSysLock(lock, a.addr)
|
||||
else:
|
||||
initSysLock(lock)
|
||||
|
||||
@@ -181,8 +181,8 @@ else:
|
||||
releaseSysAux(L)
|
||||
|
||||
when insideRLocksModule:
|
||||
proc SysLockType_Reentrant: SysLockType =
|
||||
{.emit: "`result` = PTHREAD_MUTEX_RECURSIVE;".}
|
||||
let SysLockType_Reentrant{.importc: "PTHREAD_MUTEX_RECURSIVE",
|
||||
header: "<pthread.h>".}: SysLockType
|
||||
proc initSysLockAttr(a: var SysLockAttr) {.
|
||||
importc: "pthread_mutexattr_init", header: "<pthread.h>", noSideEffect.}
|
||||
proc setSysLockType(a: var SysLockAttr, t: SysLockType) {.
|
||||
|
||||
Reference in New Issue
Block a user