Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 自由直径和多螺纹_C_Diameter Protocol_Free Diameter - Fatal编程技术网

C 自由直径和多螺纹

C 自由直径和多螺纹,c,diameter-protocol,free-diameter,C,Diameter Protocol,Free Diameter,好吧,我想用螺纹的自由直径:) 我需要一些关于在多线程环境中使用该库的建议 让我回顾一个用例: 假设我在一个类中实现了几个成员函数,以便在freediameter C函数调用中简单地提供包装器方法。 在MessageRequest方法中,我想创建DCC消息并发送到diameter服务器。为了做到这一点,我显然需要使用fd_sess_new和fd_sess_getsid函数来设置我的“Session ID”AVP,还必须使用Session_handler变量和fd_sess_state_store

好吧,我想用螺纹的自由直径:) 我需要一些关于在多线程环境中使用该库的建议

让我回顾一个用例: 假设我在一个类中实现了几个成员函数,以便在freediameter C函数调用中简单地提供包装器方法。 在MessageRequest方法中,我想创建DCC消息并发送到diameter服务器。为了做到这一点,我显然需要使用fd_sess_new和fd_sess_getsid函数来设置我的“Session ID”AVP,还必须使用Session_handler变量和fd_sess_state_store/fd_sess_state_retrieve函数来存储和检索MessageResponse上的会话处理程序对象。因此,由于将有几个并发引用MessageRequest方法,我想问一下freediameter中的对象和函数是否是线程安全的?我应该手动处理吗?我应该在每次处理方法中使用的变量时都使用互斥吗

谢谢,

许多(所有?)函数都是线程安全的。例如,读取
fd\u sess\u state\u store
fd\u sess\u state\u retrieve
的源代码时,我们可以看到在数据结构上操作时,
会话->stlock
被保持。至少对于那些人来说,没有必要单独使用锁