Ignore:
Timestamp:
04/10/07 23:05:42 (12 years ago)
Author:
art
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • nrEngine/src/IThread.cpp

    r14 r32  
    3333        { 
    3434                // delete the thread object if it is not empty 
    35                 //if (mThread){ 
    36                         //delete mThread; 
     35                //if (mThread) 
     36                //{ 
     37                //      delete mThread; 
    3738                //} 
    3839        } 
     
    4243        { 
    4344                // Check if we have already a thread created 
    44                 /*if (mThread) 
     45                if (mThread) 
    4546                { 
    4647                        NR_Log(Log::LOG_KERNEL, Log::LL_WARNING, "IThread: the appropriate thread is already running!"); 
    4748                        return; 
    48                 }*/ 
     49                } 
    4950                NR_Log(Log::LOG_KERNEL, "IThread: Create thread and start it"); 
    5051 
     
    5960                 
    6061                // now create a thread and let it run 
    61                 mThreadState = THREAD_RUNNING; 
    6262                int res = pthread_create(&mThread, &mThreadAttr, IThread::run, (void *)this); 
    6363                if (res){ 
     
    6666                }*/ 
    6767    
     68                mThreadState = THREAD_RUNNING; 
     69                mThread.reset(new boost::thread(boost::bind(IThread::run, this))); 
     70                 
    6871        } 
    6972 
     
    8184                        return; 
    8285                }*/ 
     86                mThread->join(); 
    8387        } 
    8488 
     
    117121                // use pthread to yield the timeslice 
    118122                //pthread_yield(); 
     123                boost::thread::yield(); 
    119124        } 
    120125 
    121126        //-------------------------------------------------------------------- 
    122         void* IThread::run(void* _mythread) 
     127        void IThread::run(void* _mythread) 
    123128        { 
    124129                // try to cast the given parameter to IThread pointer 
     
    127132                { 
    128133                        NR_Log(Log::LOG_KERNEL, Log::LL_ERROR, "IThread: not valid parameter was specified for IThread::run(void*) method"); 
    129                         return NULL; 
     134                        return; 
    130135                } 
    131136                 
     
    166171 
    167172                // exit the thread 
    168                 pthread_exit(NULL); 
     173                //return NULL; 
    169174        } 
    170175 
Note: See TracChangeset for help on using the changeset viewer.