在ONC-RPC中,从两个线程调用svc_run()是否有效,并使用不同的程序号注册? 我们支持多平台(Linux、Solaris和Windows),并用C和C++编码,我们使用ONC RPC进行IPC。 最近有一个要求,有一个应用服务器上工作的两个不同的程序没有
我尝试了以下测试 创建了一个多线程应用程序 在其中创建了两个工作线程 我已经在4号上试过了,对我来说效果很好 但是,在两个不同的线程中注册两个程序no并调用svc_run有效吗在ONC-RPC中,从两个线程调用svc_run()是否有效,并使用不同的程序号注册? 我们支持多平台(Linux、Solaris和Windows),并用C和C++编码,我们使用ONC RPC进行IPC。 最近有一个要求,有一个应用服务器上工作的两个不同的程序没有,c++,c,rpc,C++,C,Rpc,我尝试了以下测试 创建了一个多线程应用程序 在其中创建了两个工作线程 我已经在4号上试过了,对我来说效果很好 但是,在两个不同的线程中注册两个程序no并调用svc_run有效吗 我尝试过在互联网上搜索,但没有找到任何关于这方面的清晰信息。这似乎是合乎逻辑的,尽管我自己从未尝试过 请不要使用rpcgenIDL编译器的-M命令开关(这来自Solaris上的man页面): 如果代理/存根代码是线程安全的,并且您使用两个不同的RPC进程号注册了两个事件循环——我猜这应该表现为您实际上有两个不同的进程(R
我尝试过在互联网上搜索,但没有找到任何关于这方面的清晰信息。这似乎是合乎逻辑的,尽管我自己从未尝试过 请不要使用
rpcgen
IDL编译器的-M
命令开关(这来自Solaris上的man
页面):
如果代理/存根代码是线程安全的,并且您使用两个不同的RPC进程号注册了两个事件循环——我猜这应该表现为您实际上有两个不同的进程(RPC方面)。我意识到我参加聚会迟到了,但是:您所描述的仅适用于solaris。linux中的rpcgen不支持此功能(并且solaris中没有可用的
rpc\u控件
功能)。
In first thread I’m
a) Creating a TCP transport
b) Registering the transport
c) Calling svc_run
In second thread I’
a) Creating a second TCP transport
b) Registering the transport with a different program no
c) Calling svc_run*
-M Generates multithread-safe stubs for passing
arguments and results between rpcgen-
generated code and user written code. This
option is useful for users who want to use
threads in their code.