pthread_mutex_t {aka union <anonymous>}' 没有名为 'abi' 的成员
pthread_mutex_t {aka union <anonymous>}’ has no member named ‘abi’
我一直在尝试编写一个基于名为 POOL
的可锁定队列(在本例中为 seq)的数据库连接池。我想将 POOL
作为全局变量,然后使用 initConnectionPool
来实例化它。我尝试使用下面的代码
var POOL: ConnectionPool
proc initConnectionPool*(initialPoolSize: static int) =
POOL = ConnectionPool(connections: @[])
initLock(POOL.lock)
但是,这会引发编译器错误:
‘pthread_mutex_t {aka union <anonymous>}’ has no member named ‘abi’
我不太清楚这是什么意思,也不知道该怎么办。我该如何解决这个问题?
这似乎是 known issue。感谢 xflywind 帮助我找到了正确的答案。
proc 中的 POOL = ConnectionPool(connections: @[])
是不允许的,这会导致此处出现编译问题。你在这里应该做的是,而不是实例化这个对象,只是在这里分配各个字段,就好像这个对象已经存在一样,因为在某种程度上,它已经存在了。
所以这将编译:
proc initConnectionPool*(initialPoolSize: static int) =
POOL.connections: @[]
initLock(POOL.lock)
我一直在尝试编写一个基于名为 POOL
的可锁定队列(在本例中为 seq)的数据库连接池。我想将 POOL
作为全局变量,然后使用 initConnectionPool
来实例化它。我尝试使用下面的代码
var POOL: ConnectionPool
proc initConnectionPool*(initialPoolSize: static int) =
POOL = ConnectionPool(connections: @[])
initLock(POOL.lock)
但是,这会引发编译器错误:
‘pthread_mutex_t {aka union <anonymous>}’ has no member named ‘abi’
我不太清楚这是什么意思,也不知道该怎么办。我该如何解决这个问题?
这似乎是 known issue。感谢 xflywind 帮助我找到了正确的答案。
proc 中的POOL = ConnectionPool(connections: @[])
是不允许的,这会导致此处出现编译问题。你在这里应该做的是,而不是实例化这个对象,只是在这里分配各个字段,就好像这个对象已经存在一样,因为在某种程度上,它已经存在了。
所以这将编译:
proc initConnectionPool*(initialPoolSize: static int) =
POOL.connections: @[]
initLock(POOL.lock)