本文整理匯總了Python中asyncio.Condition方法的典型用法代碼示例。如果您正苦於以下問題:Python asyncio.Condition方法的具體用法?Python asyncio.Condition怎麽用?Python asyncio.Condition使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類asyncio
的用法示例。
在下文中一共展示了asyncio.Condition方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, channel_service: 'ChannelService'):
self._channel_service = channel_service
self._block_manager = None
self._blockchain = None
self._thread_pool = ThreadPoolExecutor(1, "ChannelInnerThread")
# Citizen
CitizenInfo = namedtuple("CitizenInfo", "peer_id target connected_time")
self._CitizenInfo = CitizenInfo
self._citizens: Dict[str, CitizenInfo] = dict()
self._citizen_condition_new_block: Condition = None
self._citizen_condition_unregister: Condition = None
self.__sub_processes = []
self.__loop_for_sub_services = None
示例2: test_context_manager_async_with
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def test_context_manager_async_with(self):
primitives = [
asyncio.Lock(loop=self.loop),
asyncio.Condition(loop=self.loop),
asyncio.Semaphore(loop=self.loop),
asyncio.BoundedSemaphore(loop=self.loop),
]
async def test(lock):
await asyncio.sleep(0.01, loop=self.loop)
self.assertFalse(lock.locked())
async with lock as _lock:
self.assertIs(_lock, None)
self.assertTrue(lock.locked())
await asyncio.sleep(0.01, loop=self.loop)
self.assertTrue(lock.locked())
self.assertFalse(lock.locked())
for primitive in primitives:
self.loop.run_until_complete(test(primitive))
self.assertFalse(primitive.locked())
示例3: test_context_manager_with_await
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def test_context_manager_with_await(self):
primitives = [
asyncio.Lock(loop=self.loop),
asyncio.Condition(loop=self.loop),
asyncio.Semaphore(loop=self.loop),
asyncio.BoundedSemaphore(loop=self.loop),
]
async def test(lock):
await asyncio.sleep(0.01, loop=self.loop)
self.assertFalse(lock.locked())
with await lock as _lock:
self.assertIs(_lock, None)
self.assertTrue(lock.locked())
await asyncio.sleep(0.01, loop=self.loop)
self.assertTrue(lock.locked())
self.assertFalse(lock.locked())
for primitive in primitives:
self.loop.run_until_complete(test(primitive))
self.assertFalse(primitive.locked())
示例4: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, minsize, maxsize, echo, loop, pool_recycle, **kwargs):
if minsize < 0:
raise ValueError("minsize should be zero or greater")
if maxsize < minsize:
raise ValueError("maxsize should be not less than minsize")
self._minsize = minsize
self._loop = loop
self._conn_kwargs = kwargs
self._acquiring = 0
self._recycle = pool_recycle
self._free = collections.deque(maxlen=maxsize)
self._cond = asyncio.Condition(loop=loop)
self._used = set()
self._closing = False
self._closed = False
self._echo = echo
示例5: print_tests
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def print_tests():
st = '''Available functions:
print_tests() Print this list.
ack_test() Test event acknowledge and Message class.
message_test() Test Message class.
event_test() Test Event and Lock objects.
barrier_test() Test the Barrier class.
semaphore_test(bounded=False) Test Semaphore or BoundedSemaphore.
condition_test() Test the Condition class.
queue_test() Test the Queue class
Recommended to issue ctrl-D after running each test.
'''
print('\x1b[32m')
print(st)
print('\x1b[39m')
示例6: cond_go
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def cond_go():
cond = asyncio.Condition()
ntasks = 7
barrier = Barrier(ntasks + 1)
t1 = asyncio.create_task(cond01_new(cond))
t3 = asyncio.create_task(cond03_new())
for n in range(ntasks):
asyncio.create_task(cond02(n, cond, barrier))
await barrier # All instances of cond02 have completed
# Test wait_for
barrier = Barrier(2)
asyncio.create_task(cond04(99, cond, barrier))
await barrier
# cancel continuously running coros.
t1.cancel()
t3.cancel()
await asyncio.sleep(0)
print('Done.')
示例7: _get_condition
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def _get_condition(self):
"""
Creation of condition is delayed, to minimize the change of using the
wrong loop.
A user may create a mock with _AwaitEvent before selecting the
execution loop. Requiring a user to delay creation is error-prone and
inflexible. Instead, condition is created when user actually starts to
use the mock.
"""
# No synchronization is needed:
# - asyncio is thread unsafe
# - there are no awaits here, method will be executed without
# switching asyncio context.
if self._condition is None:
self._condition = asyncio.Condition()
return self._condition
示例8: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, service, name=None, executor=None):
super().__init__(service, name)
self._state = State.CREATE
# A Task may want to run blocking calls in separate thread. To run a
# method in separate thread, task can use the _run_in_executor() method.
# User can create their own executor instead using the default one
# created by the asyncio. This allows user control over the type of
# executor (task/threads) and its properties (e.g. num_workers)
self._executor = executor
# _update_event can be used to notify coroutines about the change in
# state in this service. e.g. run() has completed
self._update_event = asyncio.Condition(loop=self.loop)
self.set_state(State.INIT)
coro = self.start()
# fixup task name to show actual task in logs
coro.__qualname__ = self._objname
self._task = asyncio.ensure_future(coro, loop=self.loop)
self._ALL_TASKS[self._objname] = self
示例9: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, dsn, minsize, maxsize, timeout, *,
enable_json, enable_hstore, enable_uuid, echo,
on_connect, pool_recycle, **kwargs):
if minsize < 0:
raise ValueError("minsize should be zero or greater")
if maxsize < minsize and maxsize != 0:
raise ValueError("maxsize should be not less than minsize")
self._dsn = dsn
self._minsize = minsize
self._loop = get_running_loop(kwargs.pop('loop', None) is not None)
self._timeout = timeout
self._recycle = pool_recycle
self._enable_json = enable_json
self._enable_hstore = enable_hstore
self._enable_uuid = enable_uuid
self._echo = echo
self._on_connect = on_connect
self._conn_kwargs = kwargs
self._acquiring = 0
self._free = collections.deque(maxlen=maxsize or None)
self._cond = asyncio.Condition(loop=self._loop)
self._used = set()
self._terminated = set()
self._closing = False
self._closed = False
示例10: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, server_state, fetch_chunk_size=0, capabilities=CAPABILITIES,
loop=asyncio.get_event_loop()):
self.uidvalidity = int(datetime.now().timestamp())
self.capabilities = capabilities
self.state_to_send = list()
self.delay_seconds = 0
self.loop = loop
self.fetch_chunk_size = fetch_chunk_size
self.transport = None
self.server_state = server_state
self.user_login = None
self.user_mailbox = None
self.idle_tag = None
self.idle_task = None
self.state = NONAUTH
self.state_condition = asyncio.Condition()
self.append_literal_command = None
示例11: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, loop, conn_lost_cb=None):
self.loop = loop
self.transport = None
self.state = STARTED
self.state_condition = asyncio.Condition()
self.capabilities = set()
self.pending_async_commands = dict()
self.pending_sync_command = None
self.idle_queue = asyncio.Queue()
self.imap_version = None
self.literal_data = None
self.incomplete_line = b''
self.current_command = None
self.conn_lost_cb = conn_lost_cb
self.tagnum = 0
self.tagpre = int2ap(random.randint(4096, 65535))
示例12: main
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def main(loop):
# Create a condition
condition = asyncio.Condition()
# Set up tasks watching the condition
consumers = [
consumer(condition, i)
for i in range(5)
]
# Schedule a task to manipulate the condition variable
loop.create_task(manipulate_condition(condition))
# Wait for the consumers to be done
await asyncio.wait(consumers)
示例13: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, address, db=None, password=None, encoding=None,
*, minsize, maxsize, ssl=None, parser=None,
create_connection_timeout=None,
connection_cls=None,
loop=None):
assert isinstance(minsize, int) and minsize >= 0, (
"minsize must be int >= 0", minsize, type(minsize))
assert maxsize is not None, "Arbitrary pool size is disallowed."
assert isinstance(maxsize, int) and maxsize > 0, (
"maxsize must be int > 0", maxsize, type(maxsize))
assert minsize <= maxsize, (
"Invalid pool min/max sizes", minsize, maxsize)
if loop is not None and sys.version_info >= (3, 8):
warnings.warn("The loop argument is deprecated",
DeprecationWarning)
self._address = address
self._db = db
self._password = password
self._ssl = ssl
self._encoding = encoding
self._parser_class = parser
self._minsize = minsize
self._create_connection_timeout = create_connection_timeout
self._pool = collections.deque(maxlen=maxsize)
self._used = set()
self._acquiring = 0
self._cond = asyncio.Condition(lock=Lock())
self._close_state = CloseEvent(self._do_close)
self._pubsub_conn = None
self._connection_cls = connection_cls
示例14: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self):
"""Initialize state."""
self.value = 0
self.active = False
self.condition = asyncio.Condition()
self.tag_sequence = []
示例15: __init__
# 需要導入模塊: import asyncio [as 別名]
# 或者: from asyncio import Condition [as 別名]
def __init__(self, address, db=0, password=0, encoding=None,
*, minsize, maxsize, commands_factory, ssl=None, loop=None):
if loop is not None and sys.version_info >= (3, 8):
warnings.warn("The loop argument is deprecated",
DeprecationWarning)
if loop is None and sys.version_info < (3, 8):
loop = asyncio.get_event_loop()
self._address = address
self._db = db
self._password = password
self._encoding = encoding
self._minsize = minsize
self._maxsize = maxsize
self._factory = commands_factory
self._ssl = ssl
self._loop = loop
# fake it here, we always only have one connection
self._pool = collections.deque(maxlen=1)
self._used = set()
self._acquiring = 0
self._cond = asyncio.Condition(loop=loop)
self._close_state = asyncio.Event(loop=loop)
self._close_waiter = asyncio.ensure_future(self._do_close(), loop=loop)