OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
python37
/
lib
/
python3.7
/
site-packages
/
exabgp
/
reactor
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
__init__.py
0 bytes
03/13/2021 04:30:48 PM
rw-r--r--
📁
__pycache__
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📁
api
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
asynchronous.py
1.83 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
daemon.py
6.46 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
delay.py
648 bytes
03/13/2021 04:30:48 PM
rw-r--r--
📄
interrupt.py
2.62 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
keepalive.py
1.65 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
listener.py
9.93 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
loop.py
19.4 KB
03/13/2021 04:30:48 PM
rw-r--r--
📁
network
-
03/16/2023 12:55:54 PM
rwxr-xr-x
📄
peer.py
27.95 KB
03/13/2021 04:30:48 PM
rw-r--r--
📄
protocol.py
15.65 KB
03/13/2021 04:30:48 PM
rw-r--r--
Editing: asynchronous.py
Close
# encoding: utf-8 """ reactor/async.py Created by Thomas Mangin on 2017-07-01. Copyright (c) 2009-2017 Exa Networks. All rights reserved. License: 3-clause BSD. (See the COPYRIGHT file) """ from collections import deque from exabgp.logger import Logger from exabgp.vendoring import six class ASYNC(object): LIMIT = 50 def __init__(self): self.logger = Logger() self._async = deque() def ready(self): return not self._async def schedule(self, uid, command, callback): self.logger.debug('async | %s | %s' % (uid, command), 'reactor') self._async.append((uid, callback)) def clear(self, deluid=None): if not self._async: return if deluid is None: # We could delete all the generators just to be safe self._async = deque() return running = deque() for (uid, generator) in self._async: if uid != deluid: running.append((uid, generator)) self._async = running def run(self): if not self._async: return False # length = range(min(len(self._async),self.LIMIT)) length = range(self.LIMIT) uid, generator = self._async.popleft() for _ in length: try: six.next(generator) except KeyboardInterrupt: raise except StopIteration: if not self._async: return False uid, generator = self._async.popleft() except Exception as exc: self.logger.error('async | %s | problem with function' % uid, 'reactor') for line in str(exc).split('\n'): self.logger.error('async | %s | %s' % (uid, line), 'reactor') self._async.appendleft((uid, generator)) return True