title: How to update global variable in asyncio create_task
body: <p>I currently have a global variable that's not being set across the application. I have two files where file2 imports from file1. The global is intialized in file1. </p>
  
  <p>Here is the code that initializes the global variable and later uses it in file1.</p>
  
  <pre><code>import time
  import asyncio
  
  #Initialize global
  CONNECTION_OPEN = False
  
  async def calculate_idle(t):
      orig_time = t
      global CONNECTION_OPEN
      while True:
          await asyncio.sleep(5)
          print("GLOBAL CONNECTION", CONNECTION_OPEN)
          if CONNECTION_OPEN:
              print("This value is now true")
          else:
               print("Value is still false")
  </code></pre>
  
  <p>Here is the websocket code that is setting the global to true. This is located in file2.</p>
  
  <pre><code>import os
  import asyncio
  import websockets
  import json
  import threading
  import time
  from random import randrange
  from enum import Enum
  from lights import calculate_idle,CONNECTION_OPEN 
  
  async def init_connection(message):
      #Get global variable to set
      global CONNECTION_OPEN
      global CLIENT_WS
      uri = WS_URI
      async with websockets.connect(uri) as websocket:
          print("Setting Connection open to true")
          CONNECTION_OPEN = True
          CLIENT_WS = websocket
          # send init message
          await websocket.send(message)
          print("Connection is open") 
          while CONNECTION_OPEN:
              await handleMessages(websocket, message)
          await websocket.send(json.dumps({'type': MessageType.Close.name, 'message': USERNAME}))
          await websocket.close()
  </code></pre>
  
  <p>Here is how this code is called in file2</p>
  
  <pre><code>async def main():
      message = json.dumps({'payload': 
                              'payload')
      loop = asyncio.get_event_loop()
      start_light = asyncio.create_task(calculate_idle(3))
      await asyncio.gather(init_connection(message), start_light)
  
  asyncio.run(main())
  </code></pre>
  
  <p>The order of events is:</p>
  
  <ul>
  <li>CONNECTION_OPEN is set to false </li>
  <li>"Setting connectoin open to true" is
  printed</li>
  <li>"Connection is open" is printed</li>
  <li>"Value is still false" is
  repeatedly printed</li>
  </ul>
  
  <p>I'd like the global variable value to be updated so that "This value is now true" is printed.</p>