To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcx.legosOpen lugnet.robotics.rcx.legos in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / legOS / 2234
2233  |  2235
Subject: 
Re: thread class for legOS
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Mon, 21 Jan 2002 01:34:56 GMT
Viewed: 
1753 times
  
On Mon, 21 Jan 2002, Ross Crawford wrote:

Put runWrapper() outside the class:

int runWrapper(int, char **th) {
((Thread*)th)->Run();
return 0;
}

in Start():

m_Pid = execi(runWrapper, 0, (char**)this, m_Prio, m_Stack);

Haven't done any C++ for a while, but IIRC you just need to declare runWrapper
as static, ie:

private:
static int runWrapper(...);

No, static doesn't matter but it is possible the calling conventions of C
and C++ might be different (I don't know of a platform where that is the
case for a an extern function), so you might need to specify C linkage,
as in:

extern "C" int runWrapper(...)

Note that type-safe linkage isn't a problem since the C++ code is the one
that takes the address of the function, so different naming conventions
for functions is irrelevant.  To be safe, you should always tag any C++
code that may be called from C as extern "C".  On many platforms, you can
get away with it if you don't need to reference it by name in code
compiled by the other language (as in this case).

John A. Tamplin jat@jaet.org
770/436-5387 HOME 4116 Manson Ave
770/431-9459 FAX Smyrna, GA  30082-3723



Message has 1 Reply:
  Re: thread class for legOS
 
(...) Static DOES matter; it declares the method as being a "class" method, rather than a normal instance method. I believe there is no implicit 'this' parameter and therefore it can be treated like a normal function. Of course, it can't be linked (...) (22 years ago, 21-Jan-02, to lugnet.robotics.rcx.legos)

Message is in Reply To:
  Re: thread class for legOS
 
(...) Haven't done any C++ for a while, but IIRC you just need to declare runWrapper as static, ie: private: static int runWrapper(...) ; HTH ROSCO (22 years ago, 21-Jan-02, to lugnet.robotics.rcx.legos)

8 Messages in This Thread:


Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR