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 / 2225
2224  |  2226
Subject: 
Re: thread class for legOS
Newsgroups: 
lugnet.robotics.rcx.legos
Date: 
Fri, 18 Jan 2002 13:11:39 GMT
Viewed: 
1836 times
  
!!              m_Pid = execi(&Thread::runWrapper, 0, (char**)NULL,
m_Prio, m_Stack);

IRC, every method in C++ has an implicit parameter wich is the object itself;
that's why you can't cast it. Try the following (does someone have a nicer
solution?):

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);

Eric

--
email: eric.swalens@easynet.be
web: http://student.ulb.ac.be/~eswalens



Message has 1 Reply:
  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 (23 years ago, 21-Jan-02, to lugnet.robotics.rcx.legos)

Message is in Reply To:
  thread class for legOS
 
I write a Thread class for LegOs with a simple interface like in Java or CommonC++. I'm using LegOs 0.2.4. Below are my work till yet. The problem is in the Method Start(). The line is marked with !!. The error message is at the end of the file. I (...) (23 years ago, 18-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