Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/platform-linux.cc

Issue 9117032: Reduce the space used by the stack for the profiling thread. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 702 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 713
714 class Thread::PlatformData : public Malloced { 714 class Thread::PlatformData : public Malloced {
715 public: 715 public:
716 PlatformData() : thread_(kNoThread) {} 716 PlatformData() : thread_(kNoThread) {}
717 717
718 pthread_t thread_; // Thread handle for pthread. 718 pthread_t thread_; // Thread handle for pthread.
719 }; 719 };
720 720
721 Thread::Thread(const Options& options) 721 Thread::Thread(const Options& options)
722 : data_(new PlatformData()), 722 : data_(new PlatformData()),
723 stack_size_(options.stack_size) { 723 stack_size_(options.stack_size()) {
724 set_name(options.name); 724 set_name(options.name());
725 }
726
727
728 Thread::Thread(const char* name)
729 : data_(new PlatformData()),
730 stack_size_(0) {
731 set_name(name);
732 } 725 }
733 726
734 727
735 Thread::~Thread() { 728 Thread::~Thread() {
736 delete data_; 729 delete data_;
737 } 730 }
738 731
739 732
740 static void* ThreadEntry(void* arg) { 733 static void* ThreadEntry(void* arg) {
741 Thread* thread = reinterpret_cast<Thread*>(arg); 734 Thread* thread = reinterpret_cast<Thread*>(arg);
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
1028 }; 1021 };
1029 1022
1030 1023
1031 class SignalSender : public Thread { 1024 class SignalSender : public Thread {
1032 public: 1025 public:
1033 enum SleepInterval { 1026 enum SleepInterval {
1034 HALF_INTERVAL, 1027 HALF_INTERVAL,
1035 FULL_INTERVAL 1028 FULL_INTERVAL
1036 }; 1029 };
1037 1030
1031 static const int kSignalSenderStackSize = 32 * KB;
1032
1038 explicit SignalSender(int interval) 1033 explicit SignalSender(int interval)
1039 : Thread("SignalSender"), 1034 : Thread(Thread::Options("SignalSender", kSignalSenderStackSize)),
1040 vm_tgid_(getpid()), 1035 vm_tgid_(getpid()),
1041 interval_(interval) {} 1036 interval_(interval) {}
1042 1037
1043 static void InstallSignalHandler() { 1038 static void InstallSignalHandler() {
1044 struct sigaction sa; 1039 struct sigaction sa;
1045 sa.sa_sigaction = ProfilerSignalHandler; 1040 sa.sa_sigaction = ProfilerSignalHandler;
1046 sigemptyset(&sa.sa_mask); 1041 sigemptyset(&sa.sa_mask);
1047 sa.sa_flags = SA_RESTART | SA_SIGINFO; 1042 sa.sa_flags = SA_RESTART | SA_SIGINFO;
1048 signal_handler_installed_ = 1043 signal_handler_installed_ =
1049 (sigaction(SIGPROF, &sa, &old_signal_handler_) == 0); 1044 (sigaction(SIGPROF, &sa, &old_signal_handler_) == 0);
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
1213 1208
1214 1209
1215 void Sampler::Stop() { 1210 void Sampler::Stop() {
1216 ASSERT(IsActive()); 1211 ASSERT(IsActive());
1217 SignalSender::RemoveActiveSampler(this); 1212 SignalSender::RemoveActiveSampler(this);
1218 SetActive(false); 1213 SetActive(false);
1219 } 1214 }
1220 1215
1221 1216
1222 } } // namespace v8::internal 1217 } } // namespace v8::internal
OLDNEW
« src/cpu-profiler.cc ('K') | « src/platform-freebsd.cc ('k') | src/platform-macos.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698