Subversion Repositories HomeAutomation

Rev

Rev 1124 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 1124 Rev 1196
Line 32... Line 32...
32
    Thread()
32
    Thread()
33
    {
33
    {
34
        myIsCreated = false;
34
        myIsCreated = false;
35
        myError = 0;
35
        myError = 0;
36
    };
36
    };
37
    ~Thread()
37
    virtual ~Thread()
38
    {
38
    {
39
        stop();
39
        stop();
40
    };
40
    };
41
 
41
 
42
    bool stop()
42
    bool stop()
43
    {
43
    {
44
       
44
 
45
        if (!myIsCreated)
45
        if (!myIsCreated)
46
        {
46
        {
47
            //cout << "Thread is not running, can not be stopped " << endl;
47
            //cout << "Thread is not running, can not be stopped " << endl;
48
            return true;
48
            return true;
49
        }
49
        }
50
       
50
 
51
        //cout << "Thread cancel to run " << endl;
51
        //cout << "Thread cancel to run " << endl;
52
       
52
 
53
        //myError = pthread_cancel(myHandle);
53
        myError = pthread_cancel(myHandle);
54
        myError = pthread_detach(myHandle);
54
        //myError = pthread_detach(myHandle);
55
        //cout << "Thread cancel returned " << myError << endl;
55
        //cout << "Thread cancel returned " << myError << endl;
56
       
56
 
57
       
57
 
58
       
58
 
59
        //if (joinThread)
59
        //if (joinThread)
60
        {
60
        {
61
            //join();
61
            join();
62
        }
62
        }
63
       
63
 
64
        myIsCreated = false;
64
        myIsCreated = false;
65
 
65
 
66
        return myError == 0;
66
        return myError == 0;
67
    };
67
    };
68
   
68
 
69
    bool start()
69
    bool start()
70
    {
70
    {
71
        myError = pthread_create(&myHandle, NULL, T::doThread, (void*)this);
71
        myError = pthread_create(&myHandle, NULL, T::doThread, (void*)this);
72
       
72
 
73
        if (myError != 0)
73
        if (myError != 0)
74
        {
74
        {
75
            myIsCreated = false;
75
            myIsCreated = false;
76
            return false;
76
            return false;
77
        }
77
        }