| OLD | NEW |
| 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 the V8 project authors. All rights reserved. |
| 2 // | 2 // |
| 3 // Tests of logging functions from log.h | 3 // Tests of logging functions from log.h |
| 4 | 4 |
| 5 #ifdef ENABLE_LOGGING_AND_PROFILING | 5 #ifdef ENABLE_LOGGING_AND_PROFILING |
| 6 | 6 |
| 7 #ifdef __linux__ | 7 #ifdef __linux__ |
| 8 #include <math.h> | 8 #include <math.h> |
| 9 #include <pthread.h> | 9 #include <pthread.h> |
| 10 #include <signal.h> | 10 #include <signal.h> |
| (...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 v8::internal::Semaphore* semaphore_; | 383 v8::internal::Semaphore* semaphore_; |
| 384 bool run_; | 384 bool run_; |
| 385 pthread_t self_; | 385 pthread_t self_; |
| 386 int v8_thread_id_; | 386 int v8_thread_id_; |
| 387 }; | 387 }; |
| 388 | 388 |
| 389 | 389 |
| 390 class LoopingJsThread : public LoopingThread { | 390 class LoopingJsThread : public LoopingThread { |
| 391 public: | 391 public: |
| 392 void RunLoop() { | 392 void RunLoop() { |
| 393 { | 393 v8::Locker locker; |
| 394 v8::Locker locker; | 394 CHECK(v8::internal::ThreadManager::HasId()); |
| 395 CHECK(v8::internal::ThreadManager::HasId()); | 395 SetV8ThreadId(); |
| 396 SetV8ThreadId(); | |
| 397 } | |
| 398 while (IsRunning()) { | 396 while (IsRunning()) { |
| 399 v8::Locker locker; | |
| 400 v8::HandleScope scope; | 397 v8::HandleScope scope; |
| 401 v8::Persistent<v8::Context> context = v8::Context::New(); | 398 v8::Persistent<v8::Context> context = v8::Context::New(); |
| 402 v8::Context::Scope context_scope(context); | 399 CHECK(!context.IsEmpty()); |
| 403 SignalRunning(); | 400 { |
| 404 CompileAndRunScript( | 401 v8::Context::Scope context_scope(context); |
| 405 "var j; for (var i=0; i<10000; ++i) { j = Math.sin(i); }"); | 402 SignalRunning(); |
| 403 CompileAndRunScript( |
| 404 "var j; for (var i=0; i<10000; ++i) { j = Math.sin(i); }"); |
| 405 } |
| 406 context.Dispose(); | 406 context.Dispose(); |
| 407 i::OS::Sleep(1); | 407 { |
| 408 v8::Unlocker unlocker; |
| 409 i::OS::Sleep(1); |
| 410 } |
| 408 } | 411 } |
| 409 } | 412 } |
| 410 }; | 413 }; |
| 411 | 414 |
| 412 | 415 |
| 413 class LoopingNonJsThread : public LoopingThread { | 416 class LoopingNonJsThread : public LoopingThread { |
| 414 public: | 417 public: |
| 415 void RunLoop() { | 418 void RunLoop() { |
| 416 v8::Locker locker; | 419 v8::Locker locker; |
| 417 v8::Unlocker unlocker; | 420 v8::Unlocker unlocker; |
| (...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1194 // Make sure that all log data is written prior crash due to CHECK failure. | 1197 // Make sure that all log data is written prior crash due to CHECK failure. |
| 1195 fflush(stdout); | 1198 fflush(stdout); |
| 1196 CHECK(results_equal); | 1199 CHECK(results_equal); |
| 1197 | 1200 |
| 1198 env->Exit(); | 1201 env->Exit(); |
| 1199 Logger::TearDown(); | 1202 Logger::TearDown(); |
| 1200 i::FLAG_always_compact = saved_always_compact; | 1203 i::FLAG_always_compact = saved_always_compact; |
| 1201 } | 1204 } |
| 1202 | 1205 |
| 1203 #endif // ENABLE_LOGGING_AND_PROFILING | 1206 #endif // ENABLE_LOGGING_AND_PROFILING |
| OLD | NEW |