def set_context_backend(type): """ Sets the internal threading backend used to track execution context type must be one of 'greenlet' or 'native_thread'. For example: >>> import greenlet, yappi >>> yappi.set_context_backend("greenlet") Setting the context backend will reset any callbacks configured via: - set_context_id_callback - set_context_name_callback The default callbacks for the backend provided will be installed instead. Configure the callbacks each time after setting context backend. """ type = type.upper() if type not in BACKEND_TYPES: raise YappiError("Invalid backend type: %s" % (type)) if type == GREENLET: id_cbk, name_cbk = _create_greenlet_callbacks() _yappi.set_context_id_callback(id_cbk) set_context_name_callback(name_cbk) else: _yappi.set_context_id_callback(None) set_context_name_callback(None) _yappi.set_context_backend(BACKEND_TYPES[type])
def set_context_id_callback(callback): """ Use a number other than thread_id to determine the current context. The callback must take no arguments and return an integer. For example: >>> import greenlet, yappi >>> yappi.set_context_id_callback(lambda: id(greenlet.getcurrent())) """ return _yappi.set_context_id_callback(callback)