help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How to restart a thread?


From: address@hidden
Subject: How to restart a thread?
Date: 23 Feb 2007 07:56:30 -0800
User-agent: G2/1.0

Hi, I'm writing a background timer using /cc++/thread.h
this is my source code:

timer.h
-----------------------------------------------
#ifndef TIMER_H
#define TIMER_H
#include <cc++/thread.h>

using namespace std;
using namespace ost;

class Timer : public Thread
{
private:
    int timeout;
public:
    Timer();
    ~Timer();
    void setTimer(float t);
    void run();

};

#endif

timer.cpp
-------------------------------------
#include "timer.h"
#include <iostream>

Timer::Timer()
{

}

Timer::~Timer()
{
    terminate();

}

void Timer::setTimer(float t)
{
    timeout = (int)(t * 1000);

}

void Timer::run()
{
    sleep(timeout);
    exit();

}

I use my timer in this way:

                Timer *t1 = new Timer();
                float oldTimeout = 3;
                t1->setTimer(oldTimeout);
                t1->detach();

and then I want to restart it when expired:

    oldTimeout = 2*oldTimeout;
    t1->setTimer(oldTimeout);
    int i = t1->detach();

but i == -1 (error) and timer does not start again.

what's wrong?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]