This was somehow causing a problem on Ubuntu 10.04.
Previously, there was an optimization to avoid recreating contexts that were already on the stack. This optimization rarely mattered (especially given the movement to run all callbacks through IOLoop.add_callback), and sometimes caused surprising behavior as other exception handlers could be inserted between stack contexts that expected to be adjacent to each other or to the wrapped function. Now each wrapped function recreates its full stack of contexts, even if some of those contexts were already on the stack. This change allows a use of NullContext in testing.py to be removed.
Previously, a chain of callbacks started without any contexts could accidentally pick up other contexts based on where the callbacks were run. This was due to a mistaken optimization in the no-context case; now the behavior is the same whether the initial context was empty or not.
which can occur when calling add_callback from a signal handler. Also fix an issue in the recent set_wakeup_fd change when running an IOLoop on a non-main thread.
it when available.
to allow the OS to select a port for us. Closes #590.
and use it throughout the test suite.
Now that stack traces have source line info, the full code is hopefully unnecessary (and if it is needed, this isn't the best way to get it). Syntax errors in the generated code will still dump the whole thing to the log.
from tests that no longer produce any logs.
…oop.start. The root logging methods call basicConfig automatically, but non-root loggers do not.