[lug] pthreads, reprise

D. Stimits stimits at idcomm.com
Wed May 31 20:52:38 MDT 2000

Kevin King wrote:
> Once again, my thanks to those who helped with the linker option for
> multithreaded C++ code.  Perhaps you would be willing to assist with another
> question?
> Is it possible to invoke pthread_create(..) and pass the name of a class
> method?  I am having no problems passing the names of routines that are
> outside the class, but am unable to pass a class method name.  I am
> suspecting it has something to do with name decoration, but I have no idea
> how to make it work.
> --Kevin
> kevin at precisonline.com
> http://www.precisonline.com
> http://www.precisonline.com/gold.htm
> _______________________________________________
> Web Page:  http://lug.boulder.co.us
> Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug

Just guessing, I'd say that static functions should be directly
callable, but to use a non-static member, you'd be required to pass
"this->Function" instead of "MyClass::Function". The reasoning is that
although you can't directly call a member function of a class, you might
be able to do so with an instantiated object. Thus "this". For
pthread_create() to not choke, it is also possible that you'll be
required to use static_cast<> on "MyClass::Function" during the create,
telling it to consider this a pointer to a function, not a pointer to a
class internally offset to a function.

More information about the LUG mailing list