00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include "../shared/thread.h"
00036 #include "../shared/groupThread.h"
00037 #include "../alloc/allocThreadObject.h"
00038 #include "../alloc/allocThreadMethod.h"
00039 #include "../cpu/cpuThreadMethod.h"
00040 #include "../mon/monThreadMethod.h"
00041 #include "../prof/prof.h"
00042
00043 #ifdef USE_ALLOCATOR
00044 Allocator Thread::_allocator;
00045 #endif
00046
00047 Buffer& Thread::infoToBin( Buffer& b) {
00048
00049 b += threadName;
00050 b += group->getProfID();
00051
00052 if( parent) b += parent->getProfID();
00053 else b += getProfID();
00054
00055 return b;
00056 }
00057
00058 void Thread::deactivate() {
00059
00060 active = 0;
00061 Prof::prof().activeThreads.removeNoRehash(this);
00062 Prof::prof().sampledThreads.remove(this);
00063
00064 AllocThreadObject* ato = allocThreadObjects.first();
00065 while (ato) {
00066 ato->deactivate();
00067 ato = allocThreadObjects.next(ato);
00068 }
00069
00070 AllocThreadMethod* atm = allocThreadMethods.first();
00071 while (atm) {
00072 atm->deactivate();
00073 atm = allocThreadMethods.next(atm);
00074 }
00075
00076 CpuThreadMethod* ctm = cpuThreadMethods.first();
00077 while (ctm) {
00078 ctm->deactivate();
00079 ctm = cpuThreadMethods.next(ctm);
00080 }
00081
00082 MonThreadMethod* mtm = monThreadMethods.first();
00083 while (mtm) {
00084 mtm->deactivate();
00085 mtm = monThreadMethods.next(mtm);
00086 }
00087 }
00088
00089 void Thread::setUnchanged() {
00090
00091 IdObject::setUnchanged();
00092 clearDataChanged();
00093 }