Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 May 2003 19:51:20 -0400
From:      Craig Rodrigues <rodrigc@attbi.com>
To:        freebsd-threads@freebsd.org
Subject:   Question about OpenSSL id_function() and pthreads
Message-ID:  <20030528235120.GA3481@attbi.com>

next in thread | raw e-mail | index | archive | help
Hi,

I previously asked this question on freebsd-security@ and
freebsd-current@ :

http://docs.freebsd.org/cgi/getmsg.cgi?fetch=63674+0+archive/2003/freebsd-security/20030302.freebsd-security


Let me try again, now that there is a freebsd-threads mailing list.


On the following OpenSSL web page:
http://www.openssl.org/docs/crypto/threads.html

"void CRYPTO_set_id_callback(unsigned long (*id_function)(void));

id_function(void) is a function that returns a thread ID. 
It is not needed on Windows nor on platforms where getpid() returns 
a different ID for each thread (most notably Linux)."


I have some third party C++ code which tries to implements this function:

tatic unsigned long
idFunction()
{
#ifdef _WIN32
    return static_cast<unsigned long>(GetCurrentThreadId());
#else
    return static_cast<unsigned long>(pthread_self());
#endif
}


This code does not compile on FreeBSD-CURRENT:

OpenSSLPluginI.cpp: In function `long unsigned int idFunction()':
OpenSSLPluginI.cpp:151: invalid static_cast from type `pthread*' to type `long 
   unsigned int'


How can I implement this function properly on FreeBSD?

Thanks.
-- 
Craig Rodrigues        
http://home.attbi.com/~rodrigc
rodrigc@attbi.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030528235120.GA3481>