【问题标题】:Are Quest libraries(Quest authentication services) thread safe?Quest 库(Quest 身份验证服务)线程安全吗?
【发布时间】:2014-02-05 06:53:48
【问题描述】:

在使用 api getpwnam_r() 检索用户信息时,此 api 在内部调用任务库 (libvas.so.2)。在多线程环境中,我的程序转储核心。 Quest 库是线程安全的吗?

【问题讨论】:

标签: c++ c multithreading thread-safety pthreads


【解决方案1】:

根据this link to IBM's documentationgetpwnam_r() 是线程安全的,虽然我不能告诉你它的实现是否使用了 Quest 库。

您是否检查过核心转储并确定问题与此函数的线程安全有关?您可以尝试仔细地删除这个函数并在多线程环境中运行以检查这是否导致问题。

【讨论】:

  • 我运行了一个简单的实用程序,该实用程序在多个线程的多个位置检索用户的用户 ID,并且一旦有对 Quest 库的并发请求,它就会转储核心。我自己做了一些研究,并在此参考的帮助下:technet.microsoft.com/en-us/library/bb463156.aspx。我很确定 getpwnam_r 是线程安全的,因为我在不使用 Quest 身份验证并且它没有转储核心的环境中调用了这个 api,但它在使用 Quest VAS 库进行身份验证的环境中确实如此。所以,现在我有点确定 Quest 的 VAS 库不是线程安全的。
猜你喜欢
  • 2019-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-19
  • 2017-10-14
  • 1970-01-01
  • 2016-05-17
相关资源
最近更新 更多