Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def enable_greenlet_tracing():
# Tracing seems to cause a 2-5% performance loss.
import greenlet
greenlet.GREENLET_USE_TRACING = True
def trace(*args):
time_since_last_switch = time.time() - trace.last_switch
# Record the time of the current switch
trace.last_switch = time.time()
if args[0] == "switch":
# We are switching from the greenlet args[1][0] to the greenlet
# args[1][1]
args[1][0].__dict__.setdefault("_trace_time", 0)
args[1][0].__dict__["_trace_time"] += time_since_last_switch
args[1][0].__dict__.setdefault("_trace_switches", 0)
args[1][0].__dict__["_trace_switches"] += 1