CINXE.COM

gevent.events – Publish/subscribe event infrastructure - gevent 24.11.2.dev0 documentation

<!doctype html> <html class="no-js" lang="en" data-content_root="../"> <head><meta charset="utf-8"/> <meta name="viewport" content="width=device-width,initial-scale=1"/> <meta name="color-scheme" content="light dark"><meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="gevent.exceptions – Exceptions" href="gevent.exceptions.html" /><link rel="prev" title="gevent.contextvars – Cooperative contextvars" href="gevent.contextvars.html" /> <!-- Generated with Sphinx 8.1.3 and Furo 2024.08.06 --> <title>gevent.events – Publish/subscribe event infrastructure - gevent 24.11.2.dev0 documentation</title> <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a3258c64" /> <link rel="stylesheet" type="text/css" href="../_static/styles/furo.css?v=354aac6f" /> <link rel="stylesheet" type="text/css" href="../_static/styles/furo-extensions.css?v=302659d7" /> <link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e405f49d" /> <style> body { --color-code-background: #eeeedd; --color-code-foreground: black; --color-brand-primary: #7c9a5e; --color-brand-content: #7c9a5e; --color-foreground-border: #b7d897; --font-stack: "SF Pro",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"; --font-stack--monospace: "JetBrainsMono", "JetBrains Mono", "JetBrains Mono Regular", "JetBrainsMono-Regular", ui-monospace, profont, monospace; } @media not print { body[data-theme="dark"] { --color-code-background: #202020; --color-code-foreground: #d0d0d0; } @media (prefers-color-scheme: dark) { body:not([data-theme="light"]) { --color-code-background: #202020; --color-code-foreground: #d0d0d0; } } } </style><script async type="text/javascript" src="/_/static/javascript/readthedocs-addons.js"></script><meta name="readthedocs-project-slug" content="python-gevent" /><meta name="readthedocs-version-slug" content="latest" /><meta name="readthedocs-resolver-filename" content="/api/gevent.events.html" /><meta name="readthedocs-http-status" content="200" /></head> <body> <script> document.body.dataset.theme = localStorage.getItem("theme") || "auto"; </script> <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <symbol id="svg-toc" viewBox="0 0 24 24"> <title>Contents</title> <svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 1024 1024"> <path d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM115.4 518.9L271.7 642c5.8 4.6 14.4.5 14.4-6.9V388.9c0-7.4-8.5-11.5-14.4-6.9L115.4 505.1a8.74 8.74 0 0 0 0 13.8z"/> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line> <line x1="3" y1="6" x2="21" y2="6"></line> <line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <symbol id="svg-sun" viewBox="0 0 24 24"> <title>Light mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </symbol> <symbol id="svg-moon" viewBox="0 0 24 24"> <title>Dark mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z" /> </svg> </symbol> <symbol id="svg-sun-with-moon" viewBox="0 0 24 24"> <title>Auto light/dark, in light mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-custom-derived-from-feather-sun-and-tabler-moon"> <path style="opacity: 50%" d="M 5.411 14.504 C 5.471 14.504 5.532 14.504 5.591 14.504 C 3.639 16.319 4.383 19.569 6.931 20.352 C 7.693 20.586 8.512 20.551 9.25 20.252 C 8.023 23.207 4.056 23.725 2.11 21.184 C 0.166 18.642 1.702 14.949 4.874 14.536 C 5.051 14.512 5.231 14.5 5.411 14.5 L 5.411 14.504 Z"/> <line x1="14.5" y1="3.25" x2="14.5" y2="1.25"/> <line x1="14.5" y1="15.85" x2="14.5" y2="17.85"/> <line x1="10.044" y1="5.094" x2="8.63" y2="3.68"/> <line x1="19" y1="14.05" x2="20.414" y2="15.464"/> <line x1="8.2" y1="9.55" x2="6.2" y2="9.55"/> <line x1="20.8" y1="9.55" x2="22.8" y2="9.55"/> <line x1="10.044" y1="14.006" x2="8.63" y2="15.42"/> <line x1="19" y1="5.05" x2="20.414" y2="3.636"/> <circle cx="14.5" cy="9.55" r="3.6"/> </svg> </symbol> <symbol id="svg-moon-with-sun" viewBox="0 0 24 24"> <title>Auto light/dark, in dark mode</title> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-custom-derived-from-feather-sun-and-tabler-moon"> <path d="M 8.282 7.007 C 8.385 7.007 8.494 7.007 8.595 7.007 C 5.18 10.184 6.481 15.869 10.942 17.24 C 12.275 17.648 13.706 17.589 15 17.066 C 12.851 22.236 5.91 23.143 2.505 18.696 C -0.897 14.249 1.791 7.786 7.342 7.063 C 7.652 7.021 7.965 7 8.282 7 L 8.282 7.007 Z"/> <line style="opacity: 50%" x1="18" y1="3.705" x2="18" y2="2.5"/> <line style="opacity: 50%" x1="18" y1="11.295" x2="18" y2="12.5"/> <line style="opacity: 50%" x1="15.316" y1="4.816" x2="14.464" y2="3.964"/> <line style="opacity: 50%" x1="20.711" y1="10.212" x2="21.563" y2="11.063"/> <line style="opacity: 50%" x1="14.205" y1="7.5" x2="13.001" y2="7.5"/> <line style="opacity: 50%" x1="21.795" y1="7.5" x2="23" y2="7.5"/> <line style="opacity: 50%" x1="15.316" y1="10.184" x2="14.464" y2="11.036"/> <line style="opacity: 50%" x1="20.711" y1="4.789" x2="21.563" y2="3.937"/> <circle style="opacity: 50%" cx="18" cy="7.5" r="2.169"/> </svg> </symbol> <symbol id="svg-pencil" viewBox="0 0 24 24"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-pencil-code"> <path d="M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4" /> <path d="M13.5 6.5l4 4" /> <path d="M20 21l2 -2l-2 -2" /> <path d="M17 17l-2 2l2 2" /> </svg> </symbol> <symbol id="svg-eye" viewBox="0 0 24 24"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-eye-code"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M10 12a2 2 0 1 0 4 0a2 2 0 0 0 -4 0" /> <path d="M11.11 17.958c-3.209 -.307 -5.91 -2.293 -8.11 -5.958c2.4 -4 5.4 -6 9 -6c3.6 0 6.6 2 9 6c-.21 .352 -.427 .688 -.647 1.008" /> <path d="M20 21l2 -2l-2 -2" /> <path d="M17 17l-2 2l2 2" /> </svg> </symbol> </svg> <input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation"> <input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc"> <label class="overlay sidebar-overlay" for="__navigation"> <div class="visually-hidden">Hide navigation sidebar</div> </label> <label class="overlay toc-overlay" for="__toc"> <div class="visually-hidden">Hide table of contents sidebar</div> </label> <a class="skip-to-content muted-link" href="#furo-main-content">Skip to content</a> <div class="page"> <header class="mobile-header"> <div class="header-left"> <label class="nav-overlay-icon" for="__navigation"> <div class="visually-hidden">Toggle site navigation sidebar</div> <i class="icon"><svg><use href="#svg-menu"></use></svg></i> </label> </div> <div class="header-center"> <a href="../contents.html"><div class="brand">gevent 24.11.2.dev0 documentation</div></a> </div> <div class="header-right"> <div class="theme-toggle-container theme-toggle-header"> <button class="theme-toggle"> <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div> <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg> <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg> <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg> </button> </div> <label class="toc-overlay-icon toc-header-icon" for="__toc"> <div class="visually-hidden">Toggle table of contents sidebar</div> <i class="icon"><svg><use href="#svg-toc"></use></svg></i> </label> </div> </header> <aside class="sidebar-drawer"> <div class="sidebar-container"> <div class="sidebar-sticky"><a class="sidebar-brand" href="../contents.html"> <div class="sidebar-logo-container"> <img class="sidebar-logo" src="../_static/5564530.png" alt="Logo"/> </div> </a><form class="sidebar-search-container" method="get" action="../search.html" role="search"> <input class="sidebar-search" placeholder="Search" name="q" aria-label="Search"> <input type="hidden" name="check_keywords" value="yes"> <input type="hidden" name="area" value="default"> </form> <div id="searchbox"></div><div class="sidebar-scroll"><div class="sidebar-tree"> <ul> <li class="toctree-l1"><a class="reference internal" href="../install.html">Installation and Requirements</a></li> <li class="toctree-l1 has-children"><a class="reference internal" href="../changelog.html">Changelog</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" role="switch" type="checkbox"/><label for="toctree-checkbox-1"><div class="visually-hidden">Toggle navigation of Changelog</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_5.html">Changes for 1.5</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_4.html">Changes for 1.4</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_3.html">Changes for 1.3</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_2.html">Changes for 1.2</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_1.html">Changes for 1.1</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_0.html">Changes for 1.0</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_pre.html">Changes before gevent 1.0</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../intro.html">Introduction</a></li> <li class="toctree-l1"><a class="reference internal" href="gevent.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent</span></code> – common functions</a></li> <li class="toctree-l1"><a class="reference internal" href="gevent.greenlet.html">Greenlet Objects</a></li> <li class="toctree-l1"><a class="reference internal" href="../servers.html">Implementing servers</a></li> <li class="toctree-l1 has-children"><a class="reference internal" href="../dns.html">Name Resolution (DNS)</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" role="switch" type="checkbox"/><label for="toctree-checkbox-2"><div class="visually-hidden">Toggle navigation of Name Resolution (DNS)</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.thread.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.thread</span></code> – thread based hostname resolver</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.ares.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.ares</span></code> – c-ares based hostname resolver</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.dnspython.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.dnspython</span></code> – Pure Python hostname resolver</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.blocking.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.blocking</span></code> – Non-cooperative resolver</a></li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../monitoring.html">Monitoring and Debugging gevent Applications</a></li> <li class="toctree-l1"><a class="reference internal" href="../loop_impls.html">Event Loop Implementations: libuv and libev</a></li> <li class="toctree-l1"><a class="reference internal" href="../configuration.html">Configuring gevent</a></li> </ul> <ul class="current"> <li class="toctree-l1 current has-children"><a class="reference internal" href="index.html">API reference</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" role="switch" type="checkbox"/><label for="toctree-checkbox-3"><div class="visually-hidden">Toggle navigation of API reference</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current"> <li class="toctree-l2"><a class="reference internal" href="gevent.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent</span></code> – common functions</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.timeout.html">Cooperative Timeouts Using <code class="docutils literal notranslate"><span class="pre">gevent.Timeout</span></code></a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.greenlet.html">Greenlet Objects</a></li> <li class="toctree-l2 has-children"><a class="reference internal" href="gevent.socket.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.socket</span></code> – Cooperative low-level networking interface</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" role="switch" type="checkbox"/><label for="toctree-checkbox-4"><div class="visually-hidden">Toggle navigation of gevent.socket – Cooperative low-level networking interface</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="gevent._socket3.html">Python 3 interface</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="gevent.ssl.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.ssl</span></code> – Secure Sockets Layer (SSL/TLS) module</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.select.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.select</span></code> – Waiting for I/O completion</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.selectors.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.selectors</span></code> – High-level IO Multiplexing</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.event.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.event</span></code> – Notifications of multiple listeners</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.queue.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.queue</span></code> – Synchronized queues</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.local.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.local</span></code> – Greenlet-local objects</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.lock.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.lock</span></code> – Locking primitives</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.hub.html"><code class="docutils literal notranslate"><span class="pre">gevent.hub</span></code> - The Event Loop and the Hub</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.core.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.core</span></code> - (deprecated) event loop abstraction</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent</span></code> – common functions</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.backdoor.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.backdoor</span></code> – Interactive greenlet-based network console that can be used in any process</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.baseserver.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.baseserver</span></code> – Base class for implementing servers</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.builtins.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.builtins</span></code> – gevent friendly implementations of builtin functions</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.contextvars.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.contextvars</span></code> – Cooperative <code class="docutils literal notranslate"><span class="pre">contextvars</span></code></a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.core.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.core</span></code> - (deprecated) event loop abstraction</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.event.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.event</span></code> – Notifications of multiple listeners</a></li> <li class="toctree-l2 current current-page"><a class="current reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.events</span></code> – Publish/subscribe event infrastructure</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.exceptions.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.exceptions</span></code> – Exceptions</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.fileobject.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.fileobject</span></code> – Wrappers to make file-like objects cooperative</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.hub.html"><code class="docutils literal notranslate"><span class="pre">gevent.hub</span></code> - The Event Loop and the Hub</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.local.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.local</span></code> – Greenlet-local objects</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.lock.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.lock</span></code> – Locking primitives</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.monkey.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.monkey</span></code> – Make the standard library cooperative</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.os.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.os</span></code> – Low-level operating system functions from <code class="xref py py-mod docutils literal notranslate"><span class="pre">os</span></code></a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.pool.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.pool</span></code> – Managing greenlets in a group</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.pywsgi.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.pywsgi</span></code> – A pure-Python, gevent-friendly WSGI server</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.queue.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.queue</span></code> – Synchronized queues</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.ares.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.ares</span></code> – c-ares based hostname resolver</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.blocking.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.blocking</span></code> – Non-cooperative resolver</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.dnspython.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.dnspython</span></code> – Pure Python hostname resolver</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.resolver.thread.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.thread</span></code> – thread based hostname resolver</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.select.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.select</span></code> – Waiting for I/O completion</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.selectors.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.selectors</span></code> – High-level IO Multiplexing</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.server.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.server</span></code> – TCP/SSL server</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.signal.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.signal</span></code> – Cooperative implementation of special cases of <code class="xref py py-func docutils literal notranslate"><span class="pre">signal.signal()</span></code></a></li> <li class="toctree-l2 has-children"><a class="reference internal" href="gevent.socket.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.socket</span></code> – Cooperative low-level networking interface</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" role="switch" type="checkbox"/><label for="toctree-checkbox-5"><div class="visually-hidden">Toggle navigation of gevent.socket – Cooperative low-level networking interface</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="gevent._socket3.html">Python 3 interface</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="gevent.ssl.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.ssl</span></code> – Secure Sockets Layer (SSL/TLS) module</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.subprocess.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.subprocess</span></code> – Cooperative <code class="docutils literal notranslate"><span class="pre">subprocess</span></code> module</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.thread.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.thread</span></code> – Implementation of the standard <code class="xref py py-mod docutils literal notranslate"><span class="pre">thread</span></code> module that spawns greenlets</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.threading.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.threading</span></code> – Implementation of the standard <code class="xref py py-mod docutils literal notranslate"><span class="pre">threading</span></code> using greenlets</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.threadpool.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.threadpool</span></code> - A pool of native threads</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.time.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.time</span></code> – Makes <em>sleep</em> gevent aware</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.util.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.util</span></code> – Low-level utilities</a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.ares.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.ares</span></code> – Backwards compatibility alias for <code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.resolver.cares</span></code></a></li> <li class="toctree-l2"><a class="reference internal" href="gevent.wsgi.html"><code class="docutils literal notranslate"><span class="pre">gevent.wsgi</span></code> – Historical note only; does not exist</a></li> <li class="toctree-l2 has-children"><a class="reference internal" href="../examples/index.html">Examples</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" role="switch" type="checkbox"/><label for="toctree-checkbox-6"><div class="visually-hidden">Toggle navigation of Examples</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../examples/concurrent_download.html">Example concurrent_download.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/dns_mass_resolve.html">Example dns_mass_resolve.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/echoserver.html">Example echoserver.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/geventsendfile.html">Example geventsendfile.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/portforwarder.html">Example portforwarder.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/processes.html">Example processes.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/psycopg2_pool.html">Example psycopg2_pool.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/threadpool.html">Example threadpool.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/udp_client.html">Example udp_client.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/udp_server.html">Example udp_server.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/unixsocket_client.html">Example unixsocket_client.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/unixsocket_server.html">Example unixsocket_server.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/webproxy.html">Example webproxy.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/webpy.html">Example webpy.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/wsgiserver.html">Example wsgiserver.py</a></li> <li class="toctree-l3"><a class="reference internal" href="../examples/wsgiserver_ssl.html">Example wsgiserver_ssl.py</a></li> </ul> </li> </ul> </li> </ul> <ul> <li class="toctree-l1 has-children"><a class="reference internal" href="../development/index.html">Development</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" role="switch" type="checkbox"/><label for="toctree-checkbox-7"><div class="visually-hidden">Toggle navigation of Development</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2"><a class="reference internal" href="../development/getting_started.html">Getting Started</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/installing_from_source.html">Installing From Source</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/running_tests.html">Running Tests</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/ci.html">Continuous integration</a></li> <li class="toctree-l2"><a class="reference internal" href="../development/release_process.html">Release Process</a></li> </ul> </li> </ul> <ul> <li class="toctree-l1"><a class="reference internal" href="../success.html">Success stories</a></li> <li class="toctree-l1"><a class="reference internal" href="../community.html">Community</a></li> <li class="toctree-l1 has-children"><a class="reference internal" href="../older_releases.html">Information About Older Releases</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" role="switch" type="checkbox"/><label for="toctree-checkbox-8"><div class="visually-hidden">Toggle navigation of Information About Older Releases</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l2 has-children"><a class="reference internal" href="../whatsnew_1_5.html">What’s new in gevent 1.5</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" role="switch" type="checkbox"/><label for="toctree-checkbox-9"><div class="visually-hidden">Toggle navigation of What’s new in gevent 1.5</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../changelog_1_5.html">Changes for 1.5</a></li> </ul> </li> <li class="toctree-l2 has-children"><a class="reference internal" href="../whatsnew_1_4.html">What’s new in gevent 1.4</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" role="switch" type="checkbox"/><label for="toctree-checkbox-10"><div class="visually-hidden">Toggle navigation of What’s new in gevent 1.4</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../changelog_1_4.html">Changes for 1.4</a></li> </ul> </li> <li class="toctree-l2 has-children"><a class="reference internal" href="../whatsnew_1_3.html">What’s new in gevent 1.3</a><input class="toctree-checkbox" id="toctree-checkbox-11" name="toctree-checkbox-11" role="switch" type="checkbox"/><label for="toctree-checkbox-11"><div class="visually-hidden">Toggle navigation of What’s new in gevent 1.3</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../changelog_1_3.html">Changes for 1.3</a></li> </ul> </li> <li class="toctree-l2 has-children"><a class="reference internal" href="../whatsnew_1_2.html">What’s new in gevent 1.2</a><input class="toctree-checkbox" id="toctree-checkbox-12" name="toctree-checkbox-12" role="switch" type="checkbox"/><label for="toctree-checkbox-12"><div class="visually-hidden">Toggle navigation of What’s new in gevent 1.2</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../changelog_1_2.html">Changes for 1.2</a></li> </ul> </li> <li class="toctree-l2 has-children"><a class="reference internal" href="../whatsnew_1_1.html">What’s new in gevent 1.1</a><input class="toctree-checkbox" id="toctree-checkbox-13" name="toctree-checkbox-13" role="switch" type="checkbox"/><label for="toctree-checkbox-13"><div class="visually-hidden">Toggle navigation of What’s new in gevent 1.1</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../changelog_1_1.html">Changes for 1.1</a></li> </ul> </li> <li class="toctree-l2 has-children"><a class="reference internal" href="../whatsnew_1_0.html">What’s new in gevent 1.0</a><input class="toctree-checkbox" id="toctree-checkbox-14" name="toctree-checkbox-14" role="switch" type="checkbox"/><label for="toctree-checkbox-14"><div class="visually-hidden">Toggle navigation of What’s new in gevent 1.0</div><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul> <li class="toctree-l3"><a class="reference internal" href="../changelog_1_0.html">Changes for 1.0</a></li> </ul> </li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_5.html">Changes for 1.5</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_4.html">Changes for 1.4</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_3.html">Changes for 1.3</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_2.html">Changes for 1.2</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_1.html">Changes for 1.1</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_1_0.html">Changes for 1.0</a></li> <li class="toctree-l2"><a class="reference internal" href="../changelog_pre.html">Changes before gevent 1.0</a></li> </ul> </li> </ul> </div> </div> </div> </div> </aside> <div class="main"> <div class="content"> <div class="article-container"> <a href="#" class="back-to-top muted-link"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"></path> </svg> <span>Back to top</span> </a> <div class="content-icon-container"> <div class="theme-toggle-container theme-toggle-content"> <button class="theme-toggle"> <div class="visually-hidden">Toggle Light / Dark / Auto color theme</div> <svg class="theme-icon-when-auto-light"><use href="#svg-sun-with-moon"></use></svg> <svg class="theme-icon-when-auto-dark"><use href="#svg-moon-with-sun"></use></svg> <svg class="theme-icon-when-dark"><use href="#svg-moon"></use></svg> <svg class="theme-icon-when-light"><use href="#svg-sun"></use></svg> </button> </div> <label class="toc-overlay-icon toc-content-icon" for="__toc"> <div class="visually-hidden">Toggle table of contents sidebar</div> <i class="icon"><svg><use href="#svg-toc"></use></svg></i> </label> </div> <article role="main" id="furo-main-content"> <section id="module-gevent.events"> <span id="gevent-events-publish-subscribe-event-infrastructure"></span><h1><a class="reference internal" href="#module-gevent.events" title="gevent.events"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.events</span></code></a> – Publish/subscribe event infrastructure<a class="headerlink" href="#module-gevent.events" title="Link to this heading">¶</a></h1> <p>Publish/subscribe event infrastructure.</p> <p>When certain “interesting” things happen during the lifetime of the process, gevent will “publish” an event (an object). That event is delivered to interested “subscribers” (functions that take one parameter, the event object).</p> <p>Higher level frameworks may take this foundation and build richer models on it.</p> <p><a class="reference external" href="https://zopeevent.readthedocs.io/en/latest/usage.html#module-zope.event" title="(in zope.event v5.1)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zope.event</span></code></a> will be used to provide the functionality of <code class="xref py py-obj docutils literal notranslate"><span class="pre">notify</span></code> and <a class="reference internal" href="#gevent.events.subscribers" title="gevent.events.subscribers"><code class="xref py py-obj docutils literal notranslate"><span class="pre">subscribers</span></code></a>. See <a class="reference external" href="https://zopeevent.readthedocs.io/en/latest/classhandler.html#module-zope.event.classhandler" title="(in zope.event v5.1)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zope.event.classhandler</span></code></a> for a simple class-based approach to subscribing to a filtered list of events, and see <a class="reference external" href="https://zopecomponent.readthedocs.io/en/latest/event.html">zope.component</a> for a much higher-level, flexible system. If you are using one of these systems, you generally will not want to directly modify <a class="reference internal" href="#gevent.events.subscribers" title="gevent.events.subscribers"><code class="xref py py-obj docutils literal notranslate"><span class="pre">subscribers</span></code></a>.</p> <div class="versionadded"> <p><span class="versionmodified added">Added in version 1.3b1.</span></p> </div> <div class="versionchanged"> <p><span class="versionmodified changed">Changed in version 23.7.0: </span>Now uses <a class="reference external" href="https://docs.python.org/3/library/importlib.metadata.html#module-importlib.metadata" title="(in Python v3.13)"><code class="xref py py-mod docutils literal notranslate"><span class="pre">importlib.metadata</span></code></a> instead of <code class="xref py py-mod docutils literal notranslate"><span class="pre">pkg_resources</span></code> to locate entry points.</p> </div> <dl class="py exception"> <dt class="sig sig-object py" id="gevent.events.DoNotPatch"> <em class="property"><span class="pre">exception</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">DoNotPatch</span></span><a class="reference internal" href="../_modules/gevent/events.html#DoNotPatch"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.DoNotPatch" title="Link to this definition">¶</a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#BaseException" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">BaseException</span></code></a></p> <p>Subscribers to will-patch events can raise instances of this class to tell gevent not to patch that particular item.</p> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IEventLoopBlocked"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IEventLoopBlocked</span></span><a class="reference internal" href="../_modules/gevent/events.html#IEventLoopBlocked"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IEventLoopBlocked" title="Link to this definition">¶</a></dt> <dd><p>The event emitted when the event loop is blocked.</p> <p>This event is emitted in the monitor thread.</p> <div class="versionchanged"> <p><span class="versionmodified changed">Changed in version 24.11.1: </span>Add the <em>hub</em> attribute.</p> </div> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IEventLoopBlocked.greenlet"> <span class="sig-name descname"><span class="pre">greenlet</span></span><a class="headerlink" href="#gevent.events.IEventLoopBlocked.greenlet" title="Link to this definition">¶</a></dt> <dd><p>The greenlet that appeared to be blocking the loop.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IEventLoopBlocked.blocking_time"> <span class="sig-name descname"><span class="pre">blocking_time</span></span><a class="headerlink" href="#gevent.events.IEventLoopBlocked.blocking_time" title="Link to this definition">¶</a></dt> <dd><p>The approximate time in seconds the loop has been blocked.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IEventLoopBlocked.info"> <span class="sig-name descname"><span class="pre">info</span></span><a class="headerlink" href="#gevent.events.IEventLoopBlocked.info" title="Link to this definition">¶</a></dt> <dd><p>A list of string lines providing extra info. You may modify this list.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IEventLoopBlocked.hub"> <span class="sig-name descname"><span class="pre">hub</span></span><a class="headerlink" href="#gevent.events.IEventLoopBlocked.hub" title="Link to this definition">¶</a></dt> <dd><p>If not None, the hub being blocked.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventDidPatchAllEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventDidPatchAllEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventDidPatchAllEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventDidPatchAllEvent" title="Link to this definition">¶</a></dt> <dd><p>Extends: <a class="reference internal" href="#gevent.events.IGeventDidPatchEvent" title="gevent.events.IGeventDidPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">gevent.events.IGeventDidPatchEvent</span></code></a></p> <p>Event emitted after gevent has patched all modules, both builtin and those provided by plugins/subscribers.</p> <p>The values of the <em>source</em> and <em>target</em> attributes are undefined.</p> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventDidPatchBuiltinModulesEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventDidPatchBuiltinModulesEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventDidPatchBuiltinModulesEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent" title="Link to this definition">¶</a></dt> <dd><p>Extends: <a class="reference internal" href="#gevent.events.IGeventDidPatchEvent" title="gevent.events.IGeventDidPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">gevent.events.IGeventDidPatchEvent</span></code></a></p> <p>Event emitted <em>after</em> the builtin modules have been patched.</p> <p>If you’re going to monkey-patch a third-party library, this is usually the event to listen for.</p> <p>The values of the <em>source</em> and <em>target</em> attributes are undefined.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventDidPatchBuiltinModulesEvent.patch_all_arguments"> <span class="sig-name descname"><span class="pre">patch_all_arguments</span></span><a class="headerlink" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent.patch_all_arguments" title="Link to this definition">¶</a></dt> <dd><p>A dictionary of all the arguments to <a class="reference internal" href="gevent.monkey.html#gevent.monkey.patch_all" title="gevent.monkey.patch_all"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gevent.monkey.patch_all</span></code></a>. This dictionary should not be modified.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventDidPatchBuiltinModulesEvent.patch_all_kwargs"> <span class="sig-name descname"><span class="pre">patch_all_kwargs</span></span><a class="headerlink" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent.patch_all_kwargs" title="Link to this definition">¶</a></dt> <dd><p>A dictionary of the extra arguments to <a class="reference internal" href="gevent.monkey.html#gevent.monkey.patch_all" title="gevent.monkey.patch_all"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gevent.monkey.patch_all</span></code></a>. This dictionary should not be modified.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventDidPatchEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventDidPatchEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventDidPatchEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventDidPatchEvent" title="Link to this definition">¶</a></dt> <dd><p>Extends: <a class="reference internal" href="#gevent.events.IGeventPatchEvent" title="gevent.events.IGeventPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">gevent.events.IGeventPatchEvent</span></code></a></p> <p>An event emitted <em>after</em> gevent has patched something.</p> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventDidPatchModuleEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventDidPatchModuleEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventDidPatchModuleEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventDidPatchModuleEvent" title="Link to this definition">¶</a></dt> <dd><p>Extends: <a class="reference internal" href="#gevent.events.IGeventDidPatchEvent" title="gevent.events.IGeventDidPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">gevent.events.IGeventDidPatchEvent</span></code></a></p> <p>An event emitted <em>after</em> gevent has completed patching a specific module.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventDidPatchModuleEvent.module_name"> <span class="sig-name descname"><span class="pre">module_name</span></span><a class="headerlink" href="#gevent.events.IGeventDidPatchModuleEvent.module_name" title="Link to this definition">¶</a></dt> <dd><p>The name of the module being patched. This is the same as <code class="docutils literal notranslate"><span class="pre">target.__name__</span></code>.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventPatchEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventPatchEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventPatchEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventPatchEvent" title="Link to this definition">¶</a></dt> <dd><p>The root for all monkey-patch events gevent emits.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventPatchEvent.source"> <span class="sig-name descname"><span class="pre">source</span></span><a class="headerlink" href="#gevent.events.IGeventPatchEvent.source" title="Link to this definition">¶</a></dt> <dd><p>The source object containing the patches.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventPatchEvent.target"> <span class="sig-name descname"><span class="pre">target</span></span><a class="headerlink" href="#gevent.events.IGeventPatchEvent.target" title="Link to this definition">¶</a></dt> <dd><p>The destination object to be patched.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchAllEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventWillPatchAllEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventWillPatchAllEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventWillPatchAllEvent" title="Link to this definition">¶</a></dt> <dd><p>Extends: <a class="reference internal" href="#gevent.events.IGeventWillPatchEvent" title="gevent.events.IGeventWillPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">gevent.events.IGeventWillPatchEvent</span></code></a></p> <p>An event emitted <em>before</em> gevent begins patching the system.</p> <p>Following this event will be a series of <a class="reference internal" href="#gevent.events.IGeventWillPatchModuleEvent" title="gevent.events.IGeventWillPatchModuleEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventWillPatchModuleEvent</span></code></a> and <a class="reference internal" href="#gevent.events.IGeventDidPatchModuleEvent" title="gevent.events.IGeventDidPatchModuleEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventDidPatchModuleEvent</span></code></a> for each patched module.</p> <p>Once the gevent builtin modules have been processed, <a class="reference internal" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent" title="gevent.events.IGeventDidPatchBuiltinModulesEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventDidPatchBuiltinModulesEvent</span></code></a> will be emitted. Processing this event is an ideal time for third-party modules to be imported and patched (which may trigger its own will/did patch module events).</p> <p>Finally, a <a class="reference internal" href="#gevent.events.IGeventDidPatchAllEvent" title="gevent.events.IGeventDidPatchAllEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventDidPatchAllEvent</span></code></a> will be sent.</p> <p>If a subscriber to this event raises <a class="reference internal" href="#gevent.events.DoNotPatch" title="gevent.events.DoNotPatch"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DoNotPatch</span></code></a>, no patching will be done.</p> <p>The <em>source</em> and <em>target</em> attributes have undefined values.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchAllEvent.patch_all_arguments"> <span class="sig-name descname"><span class="pre">patch_all_arguments</span></span><a class="headerlink" href="#gevent.events.IGeventWillPatchAllEvent.patch_all_arguments" title="Link to this definition">¶</a></dt> <dd><p>A dictionary of all the arguments to <a class="reference internal" href="gevent.monkey.html#gevent.monkey.patch_all" title="gevent.monkey.patch_all"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gevent.monkey.patch_all</span></code></a>. This dictionary should not be modified.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchAllEvent.patch_all_kwargs"> <span class="sig-name descname"><span class="pre">patch_all_kwargs</span></span><a class="headerlink" href="#gevent.events.IGeventWillPatchAllEvent.patch_all_kwargs" title="Link to this definition">¶</a></dt> <dd><p>A dictionary of the extra arguments to <a class="reference internal" href="gevent.monkey.html#gevent.monkey.patch_all" title="gevent.monkey.patch_all"><code class="xref py py-obj docutils literal notranslate"><span class="pre">gevent.monkey.patch_all</span></code></a>. This dictionary should not be modified.</p> </dd></dl> <dl class="py method"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchAllEvent.will_patch_module"> <span class="sig-name descname"><span class="pre">will_patch_module</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module_name</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#gevent.events.IGeventWillPatchAllEvent.will_patch_module" title="Link to this definition">¶</a></dt> <dd><p>Return whether the module named <em>module_name</em> will be patched.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventWillPatchEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventWillPatchEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventWillPatchEvent" title="Link to this definition">¶</a></dt> <dd><p>Extends: <a class="reference internal" href="#gevent.events.IGeventPatchEvent" title="gevent.events.IGeventPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">gevent.events.IGeventPatchEvent</span></code></a></p> <p>An event emitted <em>before</em> gevent monkey-patches something.</p> <p>If a subscriber raises <a class="reference internal" href="#gevent.events.DoNotPatch" title="gevent.events.DoNotPatch"><code class="xref py py-obj docutils literal notranslate"><span class="pre">DoNotPatch</span></code></a>, then patching this particular item will not take place.</p> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchModuleEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IGeventWillPatchModuleEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IGeventWillPatchModuleEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IGeventWillPatchModuleEvent" title="Link to this definition">¶</a></dt> <dd><p>Extends: <a class="reference internal" href="#gevent.events.IGeventWillPatchEvent" title="gevent.events.IGeventWillPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">gevent.events.IGeventWillPatchEvent</span></code></a></p> <p>An event emitted <em>before</em> gevent begins patching a specific module.</p> <p>Both <em>source</em> and <em>target</em> attributes are module objects.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchModuleEvent.module_name"> <span class="sig-name descname"><span class="pre">module_name</span></span><a class="headerlink" href="#gevent.events.IGeventWillPatchModuleEvent.module_name" title="Link to this definition">¶</a></dt> <dd><p>The name of the module being patched. This is the same as <code class="docutils literal notranslate"><span class="pre">target.__name__</span></code>.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IGeventWillPatchModuleEvent.target_item_names"> <span class="sig-name descname"><span class="pre">target_item_names</span></span><a class="headerlink" href="#gevent.events.IGeventWillPatchModuleEvent.target_item_names" title="Link to this definition">¶</a></dt> <dd><p>The list of item names to patch. This can be modified in place with caution.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageThresholdExceeded"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IMemoryUsageThresholdExceeded</span></span><a class="reference internal" href="../_modules/gevent/events.html#IMemoryUsageThresholdExceeded"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IMemoryUsageThresholdExceeded" title="Link to this definition">¶</a></dt> <dd><p>The event emitted when the memory usage threshold is exceeded.</p> <p>This event is emitted only while memory continues to grow above the threshold. Only if the condition or stabilized is corrected (memory usage drops) will the event be emitted in the future.</p> <p>This event is emitted in the monitor thread.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageThresholdExceeded.mem_usage"> <span class="sig-name descname"><span class="pre">mem_usage</span></span><a class="headerlink" href="#gevent.events.IMemoryUsageThresholdExceeded.mem_usage" title="Link to this definition">¶</a></dt> <dd><p>The current process memory usage, in bytes.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageThresholdExceeded.max_allowed"> <span class="sig-name descname"><span class="pre">max_allowed</span></span><a class="headerlink" href="#gevent.events.IMemoryUsageThresholdExceeded.max_allowed" title="Link to this definition">¶</a></dt> <dd><p>The maximum allowed memory usage, in bytes.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageThresholdExceeded.memory_info"> <span class="sig-name descname"><span class="pre">memory_info</span></span><a class="headerlink" href="#gevent.events.IMemoryUsageThresholdExceeded.memory_info" title="Link to this definition">¶</a></dt> <dd><p>The tuple of memory usage stats return by psutil.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageUnderThreshold"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IMemoryUsageUnderThreshold</span></span><a class="reference internal" href="../_modules/gevent/events.html#IMemoryUsageUnderThreshold"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IMemoryUsageUnderThreshold" title="Link to this definition">¶</a></dt> <dd><p>The event emitted when the memory usage drops below the threshold after having previously been above it.</p> <p>This event is emitted only the first time memory usage is detected to be below the threshold after having previously been above it. If memory usage climbs again, a <a class="reference internal" href="#gevent.events.IMemoryUsageThresholdExceeded" title="gevent.events.IMemoryUsageThresholdExceeded"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IMemoryUsageThresholdExceeded</span></code></a> event will be broadcast, and then this event could be broadcast again.</p> <p>This event is emitted in the monitor thread.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageUnderThreshold.mem_usage"> <span class="sig-name descname"><span class="pre">mem_usage</span></span><a class="headerlink" href="#gevent.events.IMemoryUsageUnderThreshold.mem_usage" title="Link to this definition">¶</a></dt> <dd><p>The current process memory usage, in bytes.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageUnderThreshold.max_allowed"> <span class="sig-name descname"><span class="pre">max_allowed</span></span><a class="headerlink" href="#gevent.events.IMemoryUsageUnderThreshold.max_allowed" title="Link to this definition">¶</a></dt> <dd><p>The maximum allowed memory usage, in bytes.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageUnderThreshold.max_memory_usage"> <span class="sig-name descname"><span class="pre">max_memory_usage</span></span><a class="headerlink" href="#gevent.events.IMemoryUsageUnderThreshold.max_memory_usage" title="Link to this definition">¶</a></dt> <dd><p>The memory usage that caused the previous IMemoryUsageThresholdExceeded event.</p> </dd></dl> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IMemoryUsageUnderThreshold.memory_info"> <span class="sig-name descname"><span class="pre">memory_info</span></span><a class="headerlink" href="#gevent.events.IMemoryUsageUnderThreshold.memory_info" title="Link to this definition">¶</a></dt> <dd><p>The tuple of memory usage stats return by psutil.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IPeriodicMonitorThread"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IPeriodicMonitorThread</span></span><a class="reference internal" href="../_modules/gevent/events.html#IPeriodicMonitorThread"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IPeriodicMonitorThread" title="Link to this definition">¶</a></dt> <dd><p>The contract for the periodic monitoring thread that is started by the hub.</p> <dl class="py method"> <dt class="sig sig-object py" id="gevent.events.IPeriodicMonitorThread.add_monitoring_function"> <span class="sig-name descname"><span class="pre">add_monitoring_function</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">function</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">period</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#gevent.events.IPeriodicMonitorThread.add_monitoring_function" title="Link to this definition">¶</a></dt> <dd><p>Schedule the <em>function</em> to be called approximately every <em>period</em> fractional seconds.</p> <p>The <em>function</em> receives one argument, the hub being monitored. It is called in the monitoring thread, <em>not</em> the hub thread. It <strong>must not</strong> attempt to use the gevent asynchronous API.</p> <p>If the <em>function</em> is already a monitoring function, then its <em>period</em> will be updated for future runs.</p> <p>If the <em>period</em> is <code class="docutils literal notranslate"><span class="pre">None</span></code>, then the function will be removed.</p> <p>A <em>period</em> less than or equal to zero is not allowed.</p> </dd></dl> </dd></dl> <dl class="py interface"> <dt class="sig sig-object py" id="gevent.events.IPeriodicMonitorThreadStartedEvent"> <em class="property"><span class="pre">interface</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IPeriodicMonitorThreadStartedEvent</span></span><a class="reference internal" href="../_modules/gevent/events.html#IPeriodicMonitorThreadStartedEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.IPeriodicMonitorThreadStartedEvent" title="Link to this definition">¶</a></dt> <dd><p>The event emitted when a hub starts a periodic monitoring thread.</p> <p>You can use this event to add additional monitoring functions.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.IPeriodicMonitorThreadStartedEvent.monitor"> <span class="sig-name descname"><span class="pre">monitor</span></span><a class="headerlink" href="#gevent.events.IPeriodicMonitorThreadStartedEvent.monitor" title="Link to this definition">¶</a></dt> <dd><p>The instance of <a class="reference internal" href="#gevent.events.IPeriodicMonitorThread" title="gevent.events.IPeriodicMonitorThread"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IPeriodicMonitorThread</span></code></a> that was started.</p> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.EventLoopBlocked"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">EventLoopBlocked</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">greenlet</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">blocking_time</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">info</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">*</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hub</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#EventLoopBlocked"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.EventLoopBlocked" title="Link to this definition">¶</a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>The event emitted when the event loop is blocked.</p> <p>Implements <a class="reference internal" href="#gevent.events.IEventLoopBlocked" title="gevent.events.IEventLoopBlocked"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IEventLoopBlocked</span></code></a>.</p> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.GeventDidPatchAllEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GeventDidPatchAllEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">patch_all_arguments</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">patch_all_kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#GeventDidPatchAllEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.GeventDidPatchAllEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">_PatchAllMixin</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">GeventDidPatchEvent</span></code></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IGeventDidPatchAllEvent" title="gevent.events.IGeventDidPatchAllEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventDidPatchAllEvent</span></code></a>.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.GeventDidPatchAllEvent.ENTRY_POINT_NAME"> <span class="sig-name descname"><span class="pre">ENTRY_POINT_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'gevent.plugins.monkey.did_patch_all'</span></em><a class="headerlink" href="#gevent.events.GeventDidPatchAllEvent.ENTRY_POINT_NAME" title="Link to this definition">¶</a></dt> <dd><p>The name of the setuptools entry point that is called when this event is emitted.</p> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.GeventDidPatchBuiltinModulesEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GeventDidPatchBuiltinModulesEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">patch_all_arguments</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">patch_all_kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#GeventDidPatchBuiltinModulesEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.GeventDidPatchBuiltinModulesEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">_PatchAllMixin</span></code>, <code class="xref py py-class docutils literal notranslate"><span class="pre">GeventDidPatchEvent</span></code></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent" title="gevent.events.IGeventDidPatchBuiltinModulesEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventDidPatchBuiltinModulesEvent</span></code></a>.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.GeventDidPatchBuiltinModulesEvent.ENTRY_POINT_NAME"> <span class="sig-name descname"><span class="pre">ENTRY_POINT_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'gevent.plugins.monkey.did_patch_builtins'</span></em><a class="headerlink" href="#gevent.events.GeventDidPatchBuiltinModulesEvent.ENTRY_POINT_NAME" title="Link to this definition">¶</a></dt> <dd><p>The name of the setuptools entry point that is called when this event is emitted.</p> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.GeventDidPatchModuleEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GeventDidPatchModuleEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#GeventDidPatchModuleEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.GeventDidPatchModuleEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">GeventDidPatchEvent</span></code></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IGeventDidPatchModuleEvent" title="gevent.events.IGeventDidPatchModuleEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventDidPatchModuleEvent</span></code></a>.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.GeventDidPatchModuleEvent.ENTRY_POINT_NAME"> <span class="sig-name descname"><span class="pre">ENTRY_POINT_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'gevent.plugins.monkey.did_patch_module'</span></em><a class="headerlink" href="#gevent.events.GeventDidPatchModuleEvent.ENTRY_POINT_NAME" title="Link to this definition">¶</a></dt> <dd><p>The name of the setuptools entry point that is called when this event is emitted.</p> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.GeventPatchEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GeventPatchEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#GeventPatchEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.GeventPatchEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IGeventPatchEvent" title="gevent.events.IGeventPatchEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventPatchEvent</span></code></a>.</p> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.GeventWillPatchAllEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GeventWillPatchAllEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">patch_all_arguments</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">patch_all_kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#GeventWillPatchAllEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.GeventWillPatchAllEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">_PatchAllMixin</span></code>, <a class="reference internal" href="#gevent.events.GeventWillPatchEvent" title="gevent.events.GeventWillPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">GeventWillPatchEvent</span></code></a></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IGeventWillPatchAllEvent" title="gevent.events.IGeventWillPatchAllEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventWillPatchAllEvent</span></code></a>.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.GeventWillPatchAllEvent.ENTRY_POINT_NAME"> <span class="sig-name descname"><span class="pre">ENTRY_POINT_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'gevent.plugins.monkey.will_patch_all'</span></em><a class="headerlink" href="#gevent.events.GeventWillPatchAllEvent.ENTRY_POINT_NAME" title="Link to this definition">¶</a></dt> <dd><p>The name of the setuptools entry point that is called when this event is emitted.</p> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.GeventWillPatchEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GeventWillPatchEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#GeventWillPatchEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.GeventWillPatchEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#gevent.events.GeventPatchEvent" title="gevent.events.GeventPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">GeventPatchEvent</span></code></a></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IGeventWillPatchEvent" title="gevent.events.IGeventWillPatchEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventWillPatchEvent</span></code></a>.</p> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.GeventWillPatchModuleEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GeventWillPatchModuleEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">module_name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">source</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">target</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">items</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#GeventWillPatchModuleEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.GeventWillPatchModuleEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <a class="reference internal" href="#gevent.events.GeventWillPatchEvent" title="gevent.events.GeventWillPatchEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">GeventWillPatchEvent</span></code></a></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IGeventWillPatchModuleEvent" title="gevent.events.IGeventWillPatchModuleEvent"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IGeventWillPatchModuleEvent</span></code></a>.</p> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.GeventWillPatchModuleEvent.ENTRY_POINT_NAME"> <span class="sig-name descname"><span class="pre">ENTRY_POINT_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'gevent.plugins.monkey.will_patch_module'</span></em><a class="headerlink" href="#gevent.events.GeventWillPatchModuleEvent.ENTRY_POINT_NAME" title="Link to this definition">¶</a></dt> <dd><p>The name of the setuptools entry point that is called when this event is emitted.</p> </dd></dl> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.MemoryUsageThresholdExceeded"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MemoryUsageThresholdExceeded</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mem_usage</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_allowed</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">memory_info</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#MemoryUsageThresholdExceeded"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.MemoryUsageThresholdExceeded" title="Link to this definition">¶</a></dt> <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">_AbstractMemoryEvent</span></code></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IMemoryUsageThresholdExceeded" title="gevent.events.IMemoryUsageThresholdExceeded"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IMemoryUsageThresholdExceeded</span></code></a>.</p> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.MemoryUsageUnderThreshold"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">MemoryUsageUnderThreshold</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">mem_usage</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_allowed</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">memory_info</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_usage</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#MemoryUsageUnderThreshold"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.MemoryUsageUnderThreshold" title="Link to this definition">¶</a></dt> <dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">_AbstractMemoryEvent</span></code></p> <p>Implementation of <a class="reference internal" href="#gevent.events.IMemoryUsageUnderThreshold" title="gevent.events.IMemoryUsageUnderThreshold"><code class="xref py py-obj docutils literal notranslate"><span class="pre">IMemoryUsageUnderThreshold</span></code></a>.</p> </dd></dl> <dl class="py class"> <dt class="sig sig-object py" id="gevent.events.PeriodicMonitorThreadStartedEvent"> <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PeriodicMonitorThreadStartedEvent</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">monitor</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/gevent/events.html#PeriodicMonitorThreadStartedEvent"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#gevent.events.PeriodicMonitorThreadStartedEvent" title="Link to this definition">¶</a></dt> <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.13)"><code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></a></p> <p>The implementation of <a class="reference internal" href="#gevent.events.IPeriodicMonitorThreadStartedEvent" title="gevent.events.IPeriodicMonitorThreadStartedEvent"><code class="xref py py-class docutils literal notranslate"><span class="pre">IPeriodicMonitorThreadStartedEvent</span></code></a>.</p> <div class="versionchanged"> <p><span class="versionmodified changed">Changed in version 24.11.1: </span>Now actually implements the promised interface.</p> </div> <dl class="py attribute"> <dt class="sig sig-object py" id="gevent.events.PeriodicMonitorThreadStartedEvent.ENTRY_POINT_NAME"> <span class="sig-name descname"><span class="pre">ENTRY_POINT_NAME</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'gevent.plugins.hub.periodic_monitor_thread_started'</span></em><a class="headerlink" href="#gevent.events.PeriodicMonitorThreadStartedEvent.ENTRY_POINT_NAME" title="Link to this definition">¶</a></dt> <dd><p>The name of the setuptools entry point that is called when this event is emitted.</p> </dd></dl> </dd></dl> <dl class="py data"> <dt class="sig sig-object py" id="gevent.events.subscribers"> <span class="sig-name descname"><span class="pre">subscribers</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">[]</span></em><a class="headerlink" href="#gevent.events.subscribers" title="Link to this definition">¶</a></dt> <dd><p>Applications may register for notification of events by appending a callable to the <code class="docutils literal notranslate"><span class="pre">subscribers</span></code> list.</p> <p>Each subscriber takes a single argument, which is the event object being published.</p> <p>Exceptions raised by subscribers will be propagated <em>without</em> running any remaining subscribers.</p> <p>This is an alias for <a class="reference external" href="https://zopeevent.readthedocs.io/en/latest/api.html#zope.event.subscribers" title="(in zope.event v5.1)"><code class="xref py py-obj docutils literal notranslate"><span class="pre">zope.event.subscribers</span></code></a>; prefer to use that attribute directly.</p> </dd></dl> </section> </article> </div> <footer> <div class="related-pages"> <a class="next-page" href="gevent.exceptions.html"> <div class="page-info"> <div class="context"> <span>Next</span> </div> <div class="title"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.exceptions</span></code> – Exceptions</div> </div> <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg> </a> <a class="prev-page" href="gevent.contextvars.html"> <svg class="furo-related-icon"><use href="#svg-arrow-right"></use></svg> <div class="page-info"> <div class="context"> <span>Previous</span> </div> <div class="title"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.contextvars</span></code> – Cooperative <code class="docutils literal notranslate"><span class="pre">contextvars</span></code></div> </div> </a> </div> <div class="bottom-of-page"> <div class="left-details"> <div class="copyright"> Copyright &#169; 2009-2023, gevent contributors </div> Made with <a href="https://www.sphinx-doc.org/">Sphinx</a> and <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s <a href="https://github.com/pradyunsg/furo">Furo</a> </div> <div class="right-details"> </div> </div> </footer> </div> <aside class="toc-drawer"> <div class="toc-sticky toc-scroll"> <div class="toc-title-container"> <span class="toc-title"> On this page </span> </div> <div class="toc-tree-container"> <div class="toc-tree"> <ul> <li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">gevent.events</span></code> – Publish/subscribe event infrastructure</a><ul> <li><a class="reference internal" href="#gevent.events.DoNotPatch"><code class="docutils literal notranslate"><span class="pre">DoNotPatch</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IEventLoopBlocked"><code class="docutils literal notranslate"><span class="pre">IEventLoopBlocked</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IEventLoopBlocked.greenlet"><code class="docutils literal notranslate"><span class="pre">IEventLoopBlocked.greenlet</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IEventLoopBlocked.blocking_time"><code class="docutils literal notranslate"><span class="pre">IEventLoopBlocked.blocking_time</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IEventLoopBlocked.info"><code class="docutils literal notranslate"><span class="pre">IEventLoopBlocked.info</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IEventLoopBlocked.hub"><code class="docutils literal notranslate"><span class="pre">IEventLoopBlocked.hub</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IGeventDidPatchAllEvent"><code class="docutils literal notranslate"><span class="pre">IGeventDidPatchAllEvent</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent"><code class="docutils literal notranslate"><span class="pre">IGeventDidPatchBuiltinModulesEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent.patch_all_arguments"><code class="docutils literal notranslate"><span class="pre">IGeventDidPatchBuiltinModulesEvent.patch_all_arguments</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventDidPatchBuiltinModulesEvent.patch_all_kwargs"><code class="docutils literal notranslate"><span class="pre">IGeventDidPatchBuiltinModulesEvent.patch_all_kwargs</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IGeventDidPatchEvent"><code class="docutils literal notranslate"><span class="pre">IGeventDidPatchEvent</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventDidPatchModuleEvent"><code class="docutils literal notranslate"><span class="pre">IGeventDidPatchModuleEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IGeventDidPatchModuleEvent.module_name"><code class="docutils literal notranslate"><span class="pre">IGeventDidPatchModuleEvent.module_name</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IGeventPatchEvent"><code class="docutils literal notranslate"><span class="pre">IGeventPatchEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IGeventPatchEvent.source"><code class="docutils literal notranslate"><span class="pre">IGeventPatchEvent.source</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventPatchEvent.target"><code class="docutils literal notranslate"><span class="pre">IGeventPatchEvent.target</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchAllEvent"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchAllEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchAllEvent.patch_all_arguments"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchAllEvent.patch_all_arguments</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchAllEvent.patch_all_kwargs"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchAllEvent.patch_all_kwargs</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchAllEvent.will_patch_module"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchAllEvent.will_patch_module()</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchEvent"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchEvent</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchModuleEvent"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchModuleEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchModuleEvent.module_name"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchModuleEvent.module_name</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IGeventWillPatchModuleEvent.target_item_names"><code class="docutils literal notranslate"><span class="pre">IGeventWillPatchModuleEvent.target_item_names</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IMemoryUsageThresholdExceeded"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageThresholdExceeded</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IMemoryUsageThresholdExceeded.mem_usage"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageThresholdExceeded.mem_usage</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IMemoryUsageThresholdExceeded.max_allowed"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageThresholdExceeded.max_allowed</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IMemoryUsageThresholdExceeded.memory_info"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageThresholdExceeded.memory_info</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IMemoryUsageUnderThreshold"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageUnderThreshold</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IMemoryUsageUnderThreshold.mem_usage"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageUnderThreshold.mem_usage</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IMemoryUsageUnderThreshold.max_allowed"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageUnderThreshold.max_allowed</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IMemoryUsageUnderThreshold.max_memory_usage"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageUnderThreshold.max_memory_usage</span></code></a></li> <li><a class="reference internal" href="#gevent.events.IMemoryUsageUnderThreshold.memory_info"><code class="docutils literal notranslate"><span class="pre">IMemoryUsageUnderThreshold.memory_info</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IPeriodicMonitorThread"><code class="docutils literal notranslate"><span class="pre">IPeriodicMonitorThread</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IPeriodicMonitorThread.add_monitoring_function"><code class="docutils literal notranslate"><span class="pre">IPeriodicMonitorThread.add_monitoring_function()</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.IPeriodicMonitorThreadStartedEvent"><code class="docutils literal notranslate"><span class="pre">IPeriodicMonitorThreadStartedEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.IPeriodicMonitorThreadStartedEvent.monitor"><code class="docutils literal notranslate"><span class="pre">IPeriodicMonitorThreadStartedEvent.monitor</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.EventLoopBlocked"><code class="docutils literal notranslate"><span class="pre">EventLoopBlocked</span></code></a></li> <li><a class="reference internal" href="#gevent.events.GeventDidPatchAllEvent"><code class="docutils literal notranslate"><span class="pre">GeventDidPatchAllEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.GeventDidPatchAllEvent.ENTRY_POINT_NAME"><code class="docutils literal notranslate"><span class="pre">GeventDidPatchAllEvent.ENTRY_POINT_NAME</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.GeventDidPatchBuiltinModulesEvent"><code class="docutils literal notranslate"><span class="pre">GeventDidPatchBuiltinModulesEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.GeventDidPatchBuiltinModulesEvent.ENTRY_POINT_NAME"><code class="docutils literal notranslate"><span class="pre">GeventDidPatchBuiltinModulesEvent.ENTRY_POINT_NAME</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.GeventDidPatchModuleEvent"><code class="docutils literal notranslate"><span class="pre">GeventDidPatchModuleEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.GeventDidPatchModuleEvent.ENTRY_POINT_NAME"><code class="docutils literal notranslate"><span class="pre">GeventDidPatchModuleEvent.ENTRY_POINT_NAME</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.GeventPatchEvent"><code class="docutils literal notranslate"><span class="pre">GeventPatchEvent</span></code></a></li> <li><a class="reference internal" href="#gevent.events.GeventWillPatchAllEvent"><code class="docutils literal notranslate"><span class="pre">GeventWillPatchAllEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.GeventWillPatchAllEvent.ENTRY_POINT_NAME"><code class="docutils literal notranslate"><span class="pre">GeventWillPatchAllEvent.ENTRY_POINT_NAME</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.GeventWillPatchEvent"><code class="docutils literal notranslate"><span class="pre">GeventWillPatchEvent</span></code></a></li> <li><a class="reference internal" href="#gevent.events.GeventWillPatchModuleEvent"><code class="docutils literal notranslate"><span class="pre">GeventWillPatchModuleEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.GeventWillPatchModuleEvent.ENTRY_POINT_NAME"><code class="docutils literal notranslate"><span class="pre">GeventWillPatchModuleEvent.ENTRY_POINT_NAME</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.MemoryUsageThresholdExceeded"><code class="docutils literal notranslate"><span class="pre">MemoryUsageThresholdExceeded</span></code></a></li> <li><a class="reference internal" href="#gevent.events.MemoryUsageUnderThreshold"><code class="docutils literal notranslate"><span class="pre">MemoryUsageUnderThreshold</span></code></a></li> <li><a class="reference internal" href="#gevent.events.PeriodicMonitorThreadStartedEvent"><code class="docutils literal notranslate"><span class="pre">PeriodicMonitorThreadStartedEvent</span></code></a><ul> <li><a class="reference internal" href="#gevent.events.PeriodicMonitorThreadStartedEvent.ENTRY_POINT_NAME"><code class="docutils literal notranslate"><span class="pre">PeriodicMonitorThreadStartedEvent.ENTRY_POINT_NAME</span></code></a></li> </ul> </li> <li><a class="reference internal" href="#gevent.events.subscribers"><code class="docutils literal notranslate"><span class="pre">subscribers</span></code></a></li> </ul> </li> </ul> </div> </div> </div> </aside> </div> </div><script src="../_static/documentation_options.js?v=32fdf4fc"></script> <script src="../_static/doctools.js?v=9bcbadda"></script> <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> <script src="../_static/scripts/furo.js?v=5fa4622c"></script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10