| 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 |