Hacker News new | past | comments | ask | show | jobs | submit login

Can someone explain how `Spawn` ships the closure for execution to a remote host? I'm quite curious to know. I had a grep through the source, but I only found one [1] implementation of `Spawn` accepting a function as a parameter in the code base. This hides the true implementation, which I'm struggling to find. Any hints?

[1] https://github.com/tumblr/gocircuit/blob/master/src/circuit/...




I am thinking it translates your program into multiple go programs, compiles them, and then deploys them.



I found that earlier - unless I'm missing something, it doesn't actually explain how the closure is packaged. Does the worker need compiled-in knowledge of what the master wants to execute in advance, for example? It's not clear to me.


It looks like at this time Spawn doesn't support the closures yet. http://www.gocircuit.org/lang.html#worker-functions: "The need for boilerplate will be removed in an upcoming Circuit Compiler"

From https://github.com/tumblr/gocircuit/blob/master/src/circuit/...: "The worker function fn, whose type must have previously been registered with RegisterFunc"

And it looks like only function type id is communicated to worker: https://github.com/tumblr/gocircuit/blob/master/src/circuit/...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: