Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions pypprof/net_http.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import gc
import pkg_resources
import sys
import threading
import time
import traceback
from threading import active_count, Thread

import six
from six.moves.BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
Expand All @@ -22,6 +22,13 @@
from pypprof.builder import Builder
from pypprof import thread_profiler

try:
from gevent import monkey
active_count = monkey.get_original("threading", "active_count")
Thread = monkey.get_original("threading", "Thread")
except ImportError:
pass


_wall_profiler = WallProfiler()

Expand All @@ -41,7 +48,7 @@ def start_pprof_server(host='localhost', port=8080):
_wall_profiler.register_handler()

server = HTTPServer((host, port), PProfRequestHandler)
bg_thread = threading.Thread(target=server.serve_forever)
bg_thread = Thread(target=server.serve_forever)
bg_thread.daemon = True
bg_thread.start()
return server
Expand Down Expand Up @@ -80,7 +87,7 @@ def do_GET(self):

def index(self):
template = pkg_resources.resource_string(__name__, "index.html").decode("utf-8")
body = template.format(num_threads=threading.active_count())
body = template.format(num_threads=active_count())

self.send_response(200)
self.send_header("X-Content-Type-Options", "nosniff")
Expand Down