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).
Replace the standard socket object with gevent’s cooperative sockets.
dns is true, also patch dns functions in
Replace SSLSocket object and socket wrapping functions in
ssl with cooperative versions.
This is only useful if
patch_socket() has been called.
aggressive is true (the default), also remove other blocking functions from
and (on Python 3.4 and above)
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.RLock(and, under Python 3,
importlib._bootstrap._ModuleLock) instances that are currently locked can be properly unlocked.
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
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.
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
|Returns:||The original value if a string was given for
Check if a module has been replaced with a cooperative version.
Check if an object in a module has been replaced with a cooperative version.
gevent.pool – Managing greenlets in a group