Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 May 2003 20:07:24 -0400 (EDT)
From:      Daniel Eischen <eischen@pcnet.com>
To:        Craig Rodrigues <rodrigc@attbi.com>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: Question about OpenSSL id_function() and pthreads
Message-ID:  <Pine.GSO.4.10.10305282000170.133-100000@pcnet5.pcnet.com>
In-Reply-To: <20030528235120.GA3481@attbi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 28 May 2003, Craig Rodrigues wrote:

> 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'

I don't know C++ well (much at all).  What does static_cast do?

The error message makes it look as if you are converting
a "pthread" * to "long unsigned int".  Don't you just
want "unsigned long" instead?

> 
> How can I implement this function properly on FreeBSD?

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10305282000170.133-100000>