| Index: src/platform-posix.cc
|
| diff --git a/src/platform-posix.cc b/src/platform-posix.cc
|
| index ae47bd4d3fac7467806729160696ecc908598b25..928edb86a5dc1c397f1c2bc79747dd7a71ef44a7 100644
|
| --- a/src/platform-posix.cc
|
| +++ b/src/platform-posix.cc
|
| @@ -8,6 +8,7 @@
|
|
|
| #include <dlfcn.h>
|
| #include <errno.h>
|
| +#include <limits.h>
|
| #include <pthread.h>
|
| #if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
| #include <pthread_np.h> // for pthread_set_name_np
|
| @@ -41,10 +42,13 @@
|
| #include <android/log.h> // NOLINT
|
| #endif
|
|
|
| -#include "src/v8.h"
|
| +#include <cmath>
|
| +#include <cstdlib>
|
|
|
| #include "src/base/lazy-instance.h"
|
| +#include "src/base/macros.h"
|
| #include "src/platform.h"
|
| +#include "src/platform/time.h"
|
| #include "src/utils/random-number-generator.h"
|
|
|
| #ifdef V8_FAST_TLS_SUPPORTED
|
| @@ -54,8 +58,16 @@
|
| namespace v8 {
|
| namespace internal {
|
|
|
| +namespace {
|
| +
|
| // 0 is never a valid thread id.
|
| -static const pthread_t kNoThread = (pthread_t) 0;
|
| +const pthread_t kNoThread = (pthread_t) 0;
|
| +
|
| +bool g_hard_abort = false;
|
| +
|
| +const char* g_gc_fake_mmap = NULL;
|
| +
|
| +} // namespace
|
|
|
|
|
| int OS::NumberOfProcessorsOnline() {
|
| @@ -191,8 +203,18 @@ static base::LazyInstance<RandomNumberGenerator>::type
|
| platform_random_number_generator = LAZY_INSTANCE_INITIALIZER;
|
|
|
|
|
| -void OS::SetRandomSeed(int64_t seed) {
|
| - platform_random_number_generator.Pointer()->SetSeed(seed);
|
| +void OS::Initialize(int64_t random_seed, bool hard_abort,
|
| + const char* const gc_fake_mmap) {
|
| + if (random_seed) {
|
| + platform_random_number_generator.Pointer()->SetSeed(random_seed);
|
| + }
|
| + g_hard_abort = hard_abort;
|
| + g_gc_fake_mmap = gc_fake_mmap;
|
| +}
|
| +
|
| +
|
| +const char* OS::GetGCFakeMMapFile() {
|
| + return g_gc_fake_mmap;
|
| }
|
|
|
|
|
| @@ -253,7 +275,7 @@ void OS::Sleep(int milliseconds) {
|
|
|
|
|
| void OS::Abort() {
|
| - if (FLAG_hard_abort) {
|
| + if (g_hard_abort) {
|
| V8_IMMEDIATE_CRASH();
|
| }
|
| // Redirect to std abort to signal abnormal program termination.
|
|
|