In your snippet you don't have to split up this in 2 different procs. And even if you do, you can pass `server` as a parameter.
> And, more generally, does that mean I still need to use shared-heap to pass
> messages/signals across async tasks?
I think you can also use (async) queues instead.
> Is there a way to say "run this async task in the same thread as that other
> async task"?
Yes, you can access the global in a section like
proc foo =
...
{.gcsafe.}:
myglobal.add(stuff)
