Boost logo

Boost Users :

From: Ray (get_rayman_at_[hidden])
Date: 2003-05-15 17:53:28


I am having some problems with boost::signals version 1_30_0 on XP,
compiled and linked using VC6.

I am building a timer mechanism, similar to that with Qt.
A user instanciates a timer with some millisecond value, starts the
timer via t.Start(), and then enters the event loop (or in most
cases, returns from a function call by the event loop).

Timer definition:

class Timer {
  typedef boost::signal1<void, int> TimerSignalType;
  typedef TimerSignalType::slot_type TimerSlotType;
public:
  boost::signals::connection TimerConnect(const TimerSlotType& slot )
  { return OnRing.connect( slot ); }
  Timer();
  Timer( const Timer& );
  Timer( unsigned long millesecInterval, TimerType t = Continous );
  ~Timer();

  void Start();

  void Ring() {OnRing( myId );}

private:

  TimerSignalType OnRing;
  int myId;
};

void Rang( int i )
{
   cout << "Received timer " << endl;
}

main()
{
  EventLoop *eventLoop = EventLoop::Instance();
  Timer t1( 3000, Continous );
  t1.TimerConnect( boost::bind( Rang, _1) );
  t1.Start();
  eventLoop->Exec();
}

eventLoop->Exec() start an event loop.
The code always crashes when atteping to execute the connected
function.

What am I doing wrong?

Ray


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net