OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 1445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1456 explicit PlatformData(HANDLE thread) : thread_(thread) {} | 1456 explicit PlatformData(HANDLE thread) : thread_(thread) {} |
1457 HANDLE thread_; | 1457 HANDLE thread_; |
1458 }; | 1458 }; |
1459 | 1459 |
1460 | 1460 |
1461 // Initialize a Win32 thread object. The thread has an invalid thread | 1461 // Initialize a Win32 thread object. The thread has an invalid thread |
1462 // handle until it is started. | 1462 // handle until it is started. |
1463 | 1463 |
1464 Thread::Thread() : ThreadHandle(ThreadHandle::INVALID) { | 1464 Thread::Thread() : ThreadHandle(ThreadHandle::INVALID) { |
1465 data_ = new PlatformData(kNoThread); | 1465 data_ = new PlatformData(kNoThread); |
| 1466 #ifdef DEBUG_THREAD_NAMES |
| 1467 SetName("v8:<unknown>"); |
| 1468 #endif |
1466 } | 1469 } |
1467 | 1470 |
1468 | 1471 |
| 1472 #ifdef DEBUG_THREAD_NAMES |
| 1473 Thread::Thread(const char* name) : ThreadHandle(ThreadHandle::INVALID) { |
| 1474 data_ = new PlatformData(kNoThread); |
| 1475 SetName(name); |
| 1476 } |
| 1477 #endif |
| 1478 |
| 1479 |
| 1480 #ifdef DEBUG_THREAD_NAMES |
| 1481 void Thread::SetName(const char* name) { |
| 1482 strncpy(name_, name, sizeof(name_)); |
| 1483 name_[sizeof(name_)-1] = '\0'; |
| 1484 } |
| 1485 #endif |
| 1486 |
| 1487 |
1469 // Close our own handle for the thread. | 1488 // Close our own handle for the thread. |
1470 Thread::~Thread() { | 1489 Thread::~Thread() { |
1471 if (data_->thread_ != kNoThread) CloseHandle(data_->thread_); | 1490 if (data_->thread_ != kNoThread) CloseHandle(data_->thread_); |
1472 delete data_; | 1491 delete data_; |
1473 } | 1492 } |
1474 | 1493 |
1475 | 1494 |
1476 // Create a new thread. It is important to use _beginthreadex() instead of | 1495 // Create a new thread. It is important to use _beginthreadex() instead of |
1477 // the Win32 function CreateThread(), because the CreateThread() does not | 1496 // the Win32 function CreateThread(), because the CreateThread() does not |
1478 // initialize thread specific structures in the C runtime library. | 1497 // initialize thread specific structures in the C runtime library. |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1920 | 1939 |
1921 // Release the thread handles | 1940 // Release the thread handles |
1922 CloseHandle(data_->sampler_thread_); | 1941 CloseHandle(data_->sampler_thread_); |
1923 CloseHandle(data_->profiled_thread_); | 1942 CloseHandle(data_->profiled_thread_); |
1924 } | 1943 } |
1925 | 1944 |
1926 | 1945 |
1927 #endif // ENABLE_LOGGING_AND_PROFILING | 1946 #endif // ENABLE_LOGGING_AND_PROFILING |
1928 | 1947 |
1929 } } // namespace v8::internal | 1948 } } // namespace v8::internal |
OLD | NEW |