Interesting idea. We'd need to have the EM_ASM data in the main HTML, but that should be doable.
On Sun, Apr 24, 2016 at 1:08 AM, juj j <[email protected]> wrote: > Something that I've been thinking about is if we did a > EM_ASM_MAIN_THREAD(...) macro that would be identical to EM_ASM, except > that when a pthread executes it, it would proxy the EM_ASM call to the main > thread to execute, and then pause to wait for the main thread to report > back. This might allow these kind of EM_ASM_MAIN_THREAD(alert('message')); > situations at least, where performance is not a concern (e.g. debugging, > startup, critical failures, ..). This could also work in a limited fashion > in non-pthreads builds when --proxy-to-worker is used. > > As a sidenote, console.log() and console.error() are already posted from > pthreads to the main thread, so those can be freely used in EM_ASM blocks > in pthreads and should work. > > 2016-04-22 20:45 GMT+03:00 Alon Zakai <[email protected]>: > >> If I understand the question, it sounds like you want to write a method >> in JavaScript in your HTML, and have it be executed when a worker is >> created? Do you want it to run in the HTML (on the main thread) or in the >> worker? >> >> If in HTML, then you can modify the code that creates workers (not sure >> where, but looking for new Worker() in src/ should find it). Or, you might >> just patch Worker itself in the main scope, replace it with another method >> that wraps around it. Overall I don't think we have a nice way to do that >> right now. >> >> If in the worker, then you can't directly do that - functions can't be >> passed from workers, only JSON-type data. >> >> On Thu, Apr 21, 2016 at 7:55 AM, Kerby Geffrard <[email protected] >> > wrote: >> >>> Hi, >>> >>> I was wondering if there's a way to attach any function to any worker >>> that Emscripten create. I want to do that because I want to add an event >>> listener to all of my threads. >>> >>> What I would like to do: >>> >>> >>> - I want to be able to add a function in my shell.html (Let's call >>> it *onNewWorker*) >>> - And when emscripten create a Worker because of a pthread in my >>> project, *onNewWorker *is called with my worker passed in argument >>> - So since inside of my *onNewWorker *function, I can add event >>> listener with my worker, all my pthread have the event listener that I >>> want >>> >>> >>> I want to do this because I need to add an event listener for when my >>> C++ thread send message with EM_ASM*. This is needed because I want to send >>> a message from my thread to the main thread that trigger an >>> `alert('message')` since we can't use alert() from workers. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "emscripten-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
