当前位置: 首页>>代码示例>>Python>>正文


Python asyncio.FastChildWatcher方法代码示例

本文整理汇总了Python中asyncio.FastChildWatcher方法的典型用法代码示例。如果您正苦于以下问题:Python asyncio.FastChildWatcher方法的具体用法?Python asyncio.FastChildWatcher怎么用?Python asyncio.FastChildWatcher使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在asyncio的用法示例。


在下文中一共展示了asyncio.FastChildWatcher方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_sigchld_child_reaped_elsewhere

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import FastChildWatcher [as 别名]
def test_sigchld_child_reaped_elsewhere(self, m):
        # register a child
        callback = mock.Mock()

        with self.watcher:
            self.running = True
            self.watcher.add_child_handler(58, callback)

        self.assertFalse(callback.called)
        self.assertFalse(m.WIFEXITED.called)
        self.assertFalse(m.WIFSIGNALED.called)
        self.assertFalse(m.WEXITSTATUS.called)
        self.assertFalse(m.WTERMSIG.called)

        # child terminates
        self.running = False
        self.add_zombie(58, 4)

        # waitpid is called elsewhere
        os.waitpid(58, os.WNOHANG)

        m.waitpid.reset_mock()

        # sigchld
        with self.ignore_warnings:
            self.watcher._sig_chld()

        if isinstance(self.watcher, asyncio.FastChildWatcher):
            # here the FastChildWatche enters a deadlock
            # (there is no way to prevent it)
            self.assertFalse(callback.called)
        else:
            callback.assert_called_once_with(58, 255) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:35,代码来源:test_unix_events.py

示例2: test_close

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import FastChildWatcher [as 别名]
def test_close(self, m):
        # register two children
        callback1 = mock.Mock()

        with self.watcher:
            self.running = True
            # child 1 terminates
            self.add_zombie(63, 9)
            # other child terminates
            self.add_zombie(65, 18)
            self.watcher._sig_chld()

            self.watcher.add_child_handler(63, callback1)
            self.watcher.add_child_handler(64, callback1)

            self.assertEqual(len(self.watcher._callbacks), 1)
            if isinstance(self.watcher, asyncio.FastChildWatcher):
                self.assertEqual(len(self.watcher._zombies), 1)

            with mock.patch.object(
                    self.loop,
                    "remove_signal_handler") as m_remove_signal_handler:

                self.watcher.close()

                m_remove_signal_handler.assert_called_once_with(
                    signal.SIGCHLD)
                self.assertFalse(self.watcher._callbacks)
                if isinstance(self.watcher, asyncio.FastChildWatcher):
                    self.assertFalse(self.watcher._zombies) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:32,代码来源:test_unix_events.py

示例3: create_watcher

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import FastChildWatcher [as 别名]
def create_watcher(self):
        return asyncio.FastChildWatcher() 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:4,代码来源:test_unix_events.py

示例4: test_get_child_watcher_after_set

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import FastChildWatcher [as 别名]
def test_get_child_watcher_after_set(self):
        policy = self.create_policy()
        watcher = asyncio.FastChildWatcher()

        policy.set_child_watcher(watcher)
        self.assertIs(policy._watcher, watcher)
        self.assertIs(watcher, policy.get_child_watcher()) 
开发者ID:Microvellum,项目名称:Fluid-Designer,代码行数:9,代码来源:test_unix_events.py

示例5: main

# 需要导入模块: import asyncio [as 别名]
# 或者: from asyncio import FastChildWatcher [as 别名]
def main(cls, loop=None, argv=sys.argv):
        """
        Runs cli commands in asyncio loop and outputs in appropriate format
        """
        if loop is None:
            loop = asyncio.get_event_loop()
            # In Python 3.8 ThreadedChildWatcher becomes the default which
            # should work fine for us. However, in Python 3.7 SafeChildWatcher
            # is the default and may cause BlockingIOErrors when many
            # subprocesses are created
            # https://docs.python.org/3/library/asyncio-policy.html#asyncio.FastChildWatcher
            if (
                sys.version_info.major == 3
                and sys.version_info.minor == 7
                and sys.platform != "win32"
            ):
                watcher = asyncio.FastChildWatcher()
                asyncio.set_child_watcher(watcher)
                watcher.attach_loop(loop)
        result = None
        try:
            result = loop.run_until_complete(cls._main(*argv[1:]))
        except KeyboardInterrupt:  # pragma: no cover
            pass  # pragma: no cover
        loop.run_until_complete(loop.shutdown_asyncgens())
        loop.close() 
开发者ID:intel,项目名称:dffml,代码行数:28,代码来源:cmd.py


注:本文中的asyncio.FastChildWatcher方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。