async def test_close_pool_in_main(self, max_connections, master_host):
        """
        A child process that uses the same pool as its parent isn't affected
        when the parent disconnects all connections within the pool.
        """
        pool = ConnectionPool.from_url(
            f"redis://{master_host}", max_connections=max_connections
        )

        conn = await pool.get_connection("ping")
        assert await conn.send_command("ping") is None
        assert await conn.read_response() == b"PONG"

        def target(pool, disconnect_event):
            async def atarget(pool, disconnect_event):
                conn = await pool.get_connection("ping")
                async with exit_callback(pool.release, conn):
                    assert await conn.send_command("ping") is None
                    assert await conn.read_response() == b"PONG"
                    disconnect_event.wait()
                    assert await conn.send_command("ping") is None
                    assert await conn.read_response() == b"PONG"

            asyncio.get_event_loop().run_until_complete(atarget(pool, disconnect_event))

        ev = multiprocessing.Event()

        proc = multiprocessing.Process(target=target, args=(pool, ev))
        proc.start()

        await pool.disconnect()
        ev.set()
        proc.join(3)
        assert proc.exitcode == 0

        A child process that uses the same pool as its parent isn't affected
        when the parent disconnects all connections within the pool.
        
tests/test_multiprocessing.py