Joshua Oreman
Joshua Oreman
This seems to be a common user request, e.g., see #42. At the kernel level we probably need to send some kind of no-op request on the queue in order...
In current Trio, if one task in a nursery raises an exception, then that exception directly propagates out of the nursery. If multiple tasks in a nursery raise exceptions, then...
A context variable is a convenient way to track something about the scope in which a task executes. Sometimes that "something" effectively constitutes a promise to child tasks that some...
This PR adds `become_guest_for()`, which moves an existing Trio run to be the guest of a newly-started host loop. When the host loop exits, the Trio run continues on, as...
Here's a fun one: ``` In [1]: import trio In [2]: thunks = [] In [3]: trio.lowlevel.start_guest_run(trio.sleep_forever, run_sync_soon_threadsafe=thunks.append, done_callback=print) In [4]: trio.lowlevel.spawn_system_task(trio.sleep_forever) Out[4]: In [5]: thunks.pop(0)() In [6]: thunks.pop(0)() Error(TrioInternalError('internal...
This is a performance improvement that we keep talking about, but I couldn't find an issue for it, except #32 which is broader-reaching. The idea: `checkpoint_if_cancelled()` (which is also used...
`vmprof.disable()` stops sampling, then does an expensive scan of code objects and debug info to symbolize addresses, then fsync()'s the profile, and only then records the end timestamp. In my...
I'm using vmprof in real-time mode to profile the main thread of a Linux application with a number of additional non-Python threads (created by various C libraries we're using). I've...
Many asyncio objects (such as asyncio.Lock) call `asyncio.get_event_loop()` in their constructor, if no loop was passed. Much asyncio-using code seems to assume that such objects can be created when no...
Currently, trio-asyncio doesn't install async generator hooks, so asyncio tasks get Trio's hooks, which try to close asyncio's async generators in Trio context. We should install our own hooks which...