Open qm3ster opened 6 years ago
Absolutely! We added it to greenlet in only a few bytes, the same solution should work reasonably well here. It would only auto-detect transferables passed directly as arguments, not within nested objects:
https://github.com/developit/greenlet/blob/master/greenlet.js#L25-L29
look forward to it..
Hi I'm a bit late to the party but it seems unclear to me... Are transferable objects supported by workerize
or not?
They are not currently supported.
Absolutely! We added it to greenlet in only a few bytes, the same solution should work reasonably well here. It would only auto-detect transferables passed directly as arguments, not within nested objects:
https://github.com/developit/greenlet/blob/master/greenlet.js#L25-L29
May I ask why only direct arguments? Why not detecting ArrayBuffers nested inside an object or an array?
I was thinking of a way to specify a loader option for how to extract the transferable from the arguments and return value of a worker method, but I realized that it would be impossible to determine the best option for each worker method with just one loader option. Instead, the approach I took was to call setup functions on both the worker and the main thread side to determine how to extract the transferables for each worker method. I've made a helper module to achieve this.
Hi! Do you think you could include a way to pass
Transferable
objects correctly? It would be great to be able to return aMessagePort
so that the function can return a stream instead of a single value.