code: def test__ioloop_not_forcibly_stopped() -> None:
      # Issue #5494
      application = Application()
      loop = IOLoop()
      loop.make_current()
      server = Server(application, io_loop=loop)
      server.start()
      result = []
  
      def f():
          server.unlisten()
          server.stop()
          # If server.stop() were to stop the Tornado IO loop,
          # g() wouldn't be called and `result` would remain empty.
          loop.add_timeout(timedelta(seconds=0.01), g)
  
      def g():
          result.append(None)
          loop.stop()
  
      loop.add_callback(f)
      loop.start()
      assert result == [None]
  
imports: from __future__ import annotations
  import pytest
  import asyncio
  import logging
  import re
  import ssl
  import sys
  import time
  from datetime import timedelta
  from unittest import mock
  import tornado
  from _util_server import http_get, url, websocket_open, ws_url
  from tornado.httpclient import HTTPError
  from tornado.httpserver import HTTPServer
  from tornado.ioloop import IOLoop
  from bokeh.application import Application
  from bokeh.application.handlers import Handler
  from bokeh.client import pull_session
  from bokeh.core.properties import List, String
  from bokeh.core.types import ID
  from bokeh.model import Model
  from bokeh.server.server import BaseServer, Server
  from bokeh.server.tornado import BokehTornado
  from bokeh.util.token import check_token_signature, generate_jwt_token, get_session_id, get_token_payload
  from tests.support.plugins.managed_server_loop import MSL
  import bokeh.server.server
label_desc: Use image node_id 13 for calling a global function with example usage: test__ioloop_not_forcibly_stopped() without return types