gevent.monkey
– Make the standard library cooperative¶patch_all
(socket=True, dns=True, time=True, select=True, thread=True, os=True, ssl=True, httplib=False, subprocess=True, sys=False, aggressive=True, Event=False, builtins=True)¶Do all of the default monkey patching (calls every other applicable function in this module).
patch_socket
(dns=True, aggressive=True)¶Replace the standard socket object with gevent’s cooperative sockets.
If dns
is true, also patch dns functions in socket
.
patch_ssl
()¶Replace SSLSocket object and socket wrapping functions in ssl
with cooperative versions.
This is only useful if patch_socket()
has been called.
patch_os
()¶Replace os.fork()
with gevent.fork()
, and, on POSIX,
os.waitpid()
with gevent.os.waitpid()
(if the
environment variable GEVENT_NOWAITPID
is not defined). Does
nothing if fork is not available.
patch_time
()¶Replace time.sleep()
with gevent.sleep()
.
patch_select
(aggressive=True)¶Replace select.select()
with gevent.select.select()
.
If aggressive
is true (the default), also remove other blocking functions from select
and (on Python 3.4 and above) selectors
.
patch_thread
(threading=True, _threading_local=True, Event=False, logging=True, existing_locks=True)¶Replace the standard thread
module to make it greenlet-based.
threading
._threading_local.local
.threading.RLock
(and, under Python 3, importlib._bootstrap._ModuleLock
)
instances that are currently locked can be properly unlocked.patch_subprocess
()¶Replace subprocess.call()
, subprocess.check_call()
,
subprocess.check_output()
and subprocess.Popen()
with cooperative versions.
patch_sys
(stdin=True, stdout=True, stderr=True)¶Patch sys.std[in,out,err] to use a cooperative IO via a threadpool.
This is relatively dangerous and can have unintended consequences such as hanging
the process or misinterpreting control keys when input
and raw_input
are used.
This method does nothing on Python 3. The Python 3 interpreter wants to flush the TextIOWrapper objects that make up stderr/stdout at shutdown time, but using a threadpool at that time leads to a hang.
get_original
(mod_name, item_name)¶Retrieve the original object from a module.
If the object has not been patched, then that object will still be retrieved.
Parameters: | item_name – A string or sequenc of strings naming the attribute(s) on the module
mod_name to return. |
---|---|
Returns: | The original value if a string was given for item_name or a sequence
of original values if a sequence was passed. |
is_module_patched
(modname)¶Check if a module has been replaced with a cooperative version.
is_object_patched
(modname, objname)¶Check if an object in a module has been replaced with a cooperative version.
Next page: gevent.pool
– Managing greenlets in a group