(cid, action, end, state)
| 211 | |
| 212 | |
| 213 | def _run_action(cid, action, end, state): |
| 214 | if action == 'use': |
| 215 | if end == 'send': |
| 216 | _channels.send(cid, b'spam', blocking=False) |
| 217 | return state.incr() |
| 218 | elif end == 'recv': |
| 219 | if not state.pending: |
| 220 | try: |
| 221 | _channels.recv(cid) |
| 222 | except _channels.ChannelEmptyError: |
| 223 | return state |
| 224 | else: |
| 225 | raise Exception('expected ChannelEmptyError') |
| 226 | else: |
| 227 | recv_nowait(cid) |
| 228 | return state.decr() |
| 229 | else: |
| 230 | raise ValueError(end) |
| 231 | elif action == 'close': |
| 232 | kwargs = {} |
| 233 | if end in ('recv', 'send'): |
| 234 | kwargs[end] = True |
| 235 | _channels.close(cid, **kwargs) |
| 236 | return state.close() |
| 237 | elif action == 'force-close': |
| 238 | kwargs = { |
| 239 | 'force': True, |
| 240 | } |
| 241 | if end in ('recv', 'send'): |
| 242 | kwargs[end] = True |
| 243 | _channels.close(cid, **kwargs) |
| 244 | return state.close(force=True) |
| 245 | else: |
| 246 | raise ValueError(action) |
| 247 | |
| 248 | |
| 249 | def clean_up_channels(): |
no test coverage detected
searching dependent graphs…