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