title: Can I use curio with sanic. Why not?
body: <p>I tried to use async raw socket in my <code>sanic</code> application on <code>Python 3.6</code> 
  And was really surprised that async functions from <code>curio</code> doesn't work in sanic async context. Minimal proof of concept:</p>
  
  <pre><code>import curio
  from sanic import Sanic
  from sanic.response import text
  app = Sanic(__name__)
  
  
  @app.route('/')
  async def index(request):
      sock = await curio.open_connection("google.com", 443, ssl=True)
      resp = await sock.recv(1024)
      return text(resp)
  
  
  app.run(host="0.0.0.0", port=5001)
  </code></pre>
  
  <p>This code generates core dump on any http request</p>
  
  <pre><code>$ python3 test2.py 
  2017-04-17 17:33:13,266: INFO: Goin' Fast @ http://0.0.0.0:5001
  2017-04-17 17:33:13,270: INFO: Starting worker [93060]
  Fatal Python error: GC object already tracked
  
  Current thread 0x00007fc57706e480 (most recent call first):
    File "/usr/lib/python3.6/linecache.py", line 165 in lazycache
    File "/usr/lib/python3.6/traceback.py", line 345 in extract
    File "/usr/lib/python3.6/traceback.py", line 497 in __init__
    File "/usr/lib/python3.6/traceback.py", line 117 in format_exception
    File "/usr/lib/python3.6/traceback.py", line 163 in format_exc
    File "/usr/lib/python3.6/site-packages/sanic/handlers.py", line 93 in default
    File "/usr/lib/python3.6/site-packages/sanic/handlers.py", line 70 in response
    File "/usr/lib/python3.6/site-packages/sanic/app.py", line 472 in handle_request
    File "/usr/lib/python3.6/site-packages/sanic/server.py", line 410 in serve
    File "/usr/lib/python3.6/site-packages/sanic/app.py", line 561 in run
    File "test2.py", line 14 in &lt;module&gt;
  Aborted (core dumped)
  </code></pre>