如何在多线程环境中管理xmlReadMemory(libxml Gnome)的错误?

How manage error of xmlReadMemory (libxml Gnome) in a multithreaded environment?

提问人:Jerome Guillaume 提问时间:4/16/2023 更新时间:4/16/2023 访问量:26

问:

我在多线程环境中使用 libxml2 Gnome。 当我调用 xmlReadMemory() 时,我使用 xmlGetLastError() 来获取错误消息的详细信息。 但是,根据文档,此函数返回上次注册的全局错误,并且是每个线程。因此,在多线程环境中,我会遇到并发问题。

res = xmlReadMemory(document, len, "test", NULL, 0);
xmlErrorPtr pErr = xmlGetLastError();
printf("pErr %s", pErr->message)

那么,如何在多线程环境中安全地获取xmlReadMemory()错误的详细信息呢? **

libxml2 侏儒

评论


答:

0赞 nwellnhof 4/16/2023 #1

每个线程的错误变量意味着它是线程安全的。(只要 libxml2 是用线程支持编译的,但这应该是默认设置。xmlGetLastError