libsmbclient threadsafeness

Igor Belyi sambauser at katehok.ac93.org
Thu Oct 21 03:58:22 GMT 2004


Michael B Allen wrote:

>Igor Belyi said:
>  
>
>>Well.. I was refering to 'errno' which is used as an error reason in
>>convert_string_allocate and as an error indicator in smb_iconv(). Global
>>variables are not very friendly in multithreaded environment.
>>    
>>
>
>No, errno is a per-thread variable. Technically I believe _REENTRANT must
>be defined but virtually a C library implementations implement errno as a
>macro for a function that retrieves errno from a per-thread location. IOW
>errno is thread safe.
>  
>

Hm.. You're right.. I'm living in the past. :o( It is precompiled into 
(*__errno_location ()) on Debian. Ok, it's good to know. :)

Then I also don't see any thread related issues with 
pull_ascii_fstring(). But, I guess you will need to go through all 
functions this way to make sure of their thread-awareness since 
libsmbclient in Samba3 hasn't been thought very carefuly from the 
threading point of view.

Good luck,
Igor



More information about the samba-technical mailing list