According to the man pages the MT-Level of xdr_opaque() is "Safe" and not 
"MT-Safe". If I have multiple threads that each create their own XDR stream 
using xdrrec_create() and the buffer for each stream is tied to a separate 
socket is it safe to be calling xdr_opaque() at the same time from each of the 
threads (in XDR_ENCODE) mode?

I'm seeing problems where the xdr_opaque() returns with FALSE, but of course 
there is no indication of what the problem is. I've looked at some of the 
source code and it looks like the main place there could be a failure is with 
the flush_out() call that is called from XDR_PUTBYTES().

The sockets that are being used are non-blocking, that I'm controlling using a 
select() call.

I usually see the xdr_opaque() call return false, but since I'm also using 
xdr_int, xdr_string, and others the same question concerning thread safety is 
relevant to those calls.

Thanks for any insight into this problem.
David.
 
 
This message posted from opensolaris.org

Reply via email to