The only IOLoop method that's safe to call from another thread is
add_callback. So you need to either give each thread it's own IOLoop,
or have your other threads use add_callback to send work to the IOLoop
thread (and then something else to send responses back, depending on
the threading model for the rest of your app). You can do it, but
it's kind of tricky, and I'd question whether it's worth it. Since
you're already using a thread per request and making blocking calls
out to AWS for other parts of the app, you might as well stick with
that model for everything unless you have a specific reason to use
AsyncHTTPClient for some parts (e.g. if you're long-polling or
otherwise expect some operations to be much slower than the ones
you're doing synchronously).
-Ben