diff options
Diffstat (limited to '')
| -rw-r--r-- | src/tests/threadid.cpp | 78 |
1 files changed, 39 insertions, 39 deletions
diff --git a/src/tests/threadid.cpp b/src/tests/threadid.cpp index 9ff99df..dfea504 100644 --- a/src/tests/threadid.cpp +++ b/src/tests/threadid.cpp | |||
| @@ -9,64 +9,64 @@ using namespace Bu; | |||
| 9 | class CopyThing | 9 | class CopyThing |
| 10 | { | 10 | { |
| 11 | public: | 11 | public: |
| 12 | CopyThing() | 12 | CopyThing() |
| 13 | { | 13 | { |
| 14 | TRACE(); | 14 | TRACE(); |
| 15 | tidHome = Thread::currentThread(); | 15 | tidHome = Thread::currentThread(); |
| 16 | } | 16 | } |
| 17 | 17 | ||
| 18 | CopyThing( const CopyThing &rSrc ) | 18 | CopyThing( const CopyThing &rSrc ) |
| 19 | { | 19 | { |
| 20 | TRACE(); | 20 | TRACE(); |
| 21 | tidHome = Thread::currentThread(); | 21 | tidHome = Thread::currentThread(); |
| 22 | sio << "Same thread? " << (tidHome == rSrc.tidHome) << sio.nl; | 22 | sio << "Same thread? " << (tidHome == rSrc.tidHome) << sio.nl; |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | void doThings() | 25 | void doThings() |
| 26 | { | 26 | { |
| 27 | TRACE(); | 27 | TRACE(); |
| 28 | if( tidHome != Thread::currentThread() ) | 28 | if( tidHome != Thread::currentThread() ) |
| 29 | sio << "Different threads, hard copy here." << sio.nl; | 29 | sio << "Different threads, hard copy here." << sio.nl; |
| 30 | else | 30 | else |
| 31 | sio << "Same thread, everything is cool." << sio.nl; | 31 | sio << "Same thread, everything is cool." << sio.nl; |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | private: | 34 | private: |
| 35 | ThreadId tidHome; | 35 | ThreadId tidHome; |
| 36 | }; | 36 | }; |
| 37 | 37 | ||
| 38 | class SubThread : public Thread | 38 | class SubThread : public Thread |
| 39 | { | 39 | { |
| 40 | public: | 40 | public: |
| 41 | SubThread( CopyThing &src ) : | 41 | SubThread( CopyThing &src ) : |
| 42 | src( src ) | 42 | src( src ) |
| 43 | { | 43 | { |
| 44 | src.doThings(); | 44 | src.doThings(); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | protected: | 47 | protected: |
| 48 | void run() | 48 | void run() |
| 49 | { | 49 | { |
| 50 | src.doThings(); | 50 | src.doThings(); |
| 51 | sio << "run-Child is me? " << (getId() == Thread::currentThread()) << sio.nl; | 51 | sio << "run-Child is me? " << (getId() == Thread::currentThread()) << sio.nl; |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | private: | 54 | private: |
| 55 | CopyThing src; | 55 | CopyThing src; |
| 56 | }; | 56 | }; |
| 57 | 57 | ||
| 58 | int main( int argc, char *argv[] ) | 58 | int main( int argc, char *argv[] ) |
| 59 | { | 59 | { |
| 60 | CopyThing a; | 60 | CopyThing a; |
| 61 | 61 | ||
| 62 | SubThread st( a ); | 62 | SubThread st( a ); |
| 63 | st.start(); | 63 | st.start(); |
| 64 | 64 | ||
| 65 | sio << "Child is me? " << (st.getId() == Thread::currentThread()) << sio.nl; | 65 | sio << "Child is me? " << (st.getId() == Thread::currentThread()) << sio.nl; |
| 66 | 66 | ||
| 67 | st.join(); | 67 | st.join(); |
| 68 | 68 | ||
| 69 | 69 | ||
| 70 | return 0; | 70 | return 0; |
| 71 | } | 71 | } |
| 72 | 72 | ||
