Next()

This is on top of your branch, so that comes in as well.

Connections() does't returns a list anymore, but an iterator like thing which you have to call Next() on. This saves a lot on allocs.

Processes are now returned as a inode->Proc{} map, with do-it-yourself merging with connections, since there is no connection list anymore.

Have not tested this on a mac, except that it compiles.
Think I find it clearer that we go for a single value here. This way the return we care about is nicely at the end of the function, and not somewhere in a loop.