|
3 | 3 | <head> |
4 | 4 | <meta charset="utf-8" /> |
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | | - <title>softioc.asyncio_dispatcher — pythonSoftIOC 4.5.0+15.g4388c69 documentation</title> |
| 6 | + <title>softioc.asyncio_dispatcher — pythonSoftIOC 4.5.0+16.g3947494 documentation</title> |
7 | 7 | <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> |
8 | 8 | <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> |
9 | 9 | <link rel="stylesheet" href="../../_static/theme_overrides.css" type="text/css" /> |
@@ -95,6 +95,7 @@ <h1>Source code for softioc.asyncio_dispatcher</h1><div class="highlight"><pre> |
95 | 95 | <span class="kn">import</span> <span class="nn">logging</span> |
96 | 96 | <span class="kn">import</span> <span class="nn">threading</span> |
97 | 97 | <span class="kn">import</span> <span class="nn">atexit</span> |
| 98 | +<span class="kn">import</span> <span class="nn">signal</span> |
98 | 99 |
|
99 | 100 | <div class="viewcode-block" id="AsyncioDispatcher"><a class="viewcode-back" href="../../reference/api.html#softioc.asyncio_dispatcher.AsyncioDispatcher">[docs]</a><span class="k">class</span> <span class="nc">AsyncioDispatcher</span><span class="p">:</span> |
100 | 101 | <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">loop</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">debug</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> |
@@ -140,6 +141,17 @@ <h1>Source code for softioc.asyncio_dispatcher</h1><div class="highlight"><pre> |
140 | 141 |
|
141 | 142 | <span class="bp">self</span><span class="o">.</span><span class="n">__shutdown</span><span class="p">()</span> |
142 | 143 |
|
| 144 | + <span class="k">def</span> <span class="nf">wait_for_quit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> |
| 145 | + <span class="n">stop_event</span> <span class="o">=</span> <span class="n">threading</span><span class="o">.</span><span class="n">Event</span><span class="p">()</span> |
| 146 | + |
| 147 | + <span class="k">def</span> <span class="nf">signal_handler</span><span class="p">(</span><span class="n">signum</span><span class="p">,</span> <span class="n">frame</span><span class="p">):</span> |
| 148 | + <span class="n">stop_event</span><span class="o">.</span><span class="n">set</span><span class="p">()</span> |
| 149 | + |
| 150 | + <span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGINT</span><span class="p">,</span> <span class="n">signal_handler</span><span class="p">)</span> |
| 151 | + <span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGTERM</span><span class="p">,</span> <span class="n">signal_handler</span><span class="p">)</span> |
| 152 | + |
| 153 | + <span class="n">stop_event</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span> |
| 154 | + |
143 | 155 | <span class="k">async</span> <span class="k">def</span> <span class="nf">__inloop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">started</span><span class="p">):</span> |
144 | 156 | <span class="bp">self</span><span class="o">.</span><span class="n">loop</span> <span class="o">=</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">get_running_loop</span><span class="p">()</span> |
145 | 157 | <span class="bp">self</span><span class="o">.</span><span class="n">__interrupt</span> <span class="o">=</span> <span class="n">asyncio</span><span class="o">.</span><span class="n">Event</span><span class="p">()</span> |
|
0 commit comments