Hello,
in the OP I have a full demo you could check. I also left more info here: 
https://github.com/emscripten-core/emscripten/issues/11914 

I think I got into this situation by force, since spawning threads from a 
webworker was not originally working: if you create the Module on your 
webworker, the thread-workers will start executing your webworker's code 
which can corrupt its onmessage event (replaced by yours!).

If spawning threads from a webworker is not allowed from the beginning, 
what alternatives do we have to execute arbitrary threaded-functions that 
can lock the UI?

On Wednesday, August 19, 2020 at 12:50:42 AM UTC+1 lailto...@gmail.com 
wrote:

> Segmentation,
> The update have solved the issue to you? is possible an example code how 
> are you doing that?
> Thanks
>
> Em terça-feira, 18 de agosto de 2020 às 11:46:17 UTC-3, 
> segmentation...@gmail.com escreveu:
>
>> Oh! Yes, it seems so. Thanks for the link!
>>
>> On Tuesday, August 18, 2020 at 3:09:25 PM UTC+1 mehdi...@gmail.com wrote:
>>
>>> Hi,
>>> I think there is an issue for this :
>>> https://github.com/emscripten-core/emscripten/issues/11914
>>>
>>>
>>> On Mon, Aug 17, 2020 at 3:42 PM 'Sam Clegg' via emscripten-discuss <
>>> emscripte...@googlegroups.com> wrote:
>>>
>>>>
>>>>
>>>> On Mon, Aug 17, 2020 at 3:28 AM Segmentation Fault Error <
>>>> segmentation...@gmail.com> wrote:
>>>>
>>>>> Should this issue be raised in the emsdk repo? or left aside, until we 
>>>>> have a final release of the threads feature?
>>>>>
>>>>>
>>>> Thread support in emscripten is officially released and available.   If 
>>>> you find bugs then opening a bug in the emscripten repo (not the emsdk 
>>>> repo) is probably the right way to go.
>>>>
>>>> cheers,
>>>> sam
>>>>  
>>>>
>>>>> On Wednesday, July 29, 2020 at 12:26:14 PM UTC+1 Segmentation Fault 
>>>>> Error wrote:
>>>>>
>>>>>> Toying with this concept I realized that some operations cannot be 
>>>>>> performed if you launch a thread from a Web Worker.
>>>>>>
>>>>>> A simpler example, following my setup linked in the OP:
>>>>>>
>>>>>> #include <pthread.h>
>>>>>> #include <stdio.h>
>>>>>> #include <emscripten.h>
>>>>>>
>>>>>> void *thread(void *arg) 
>>>>>> {
>>>>>>     printf("Hello from thread!\n"); // Execution hangs here if Module 
>>>>>> is instantiated in a Web Worker
>>>>>>     return NULL;
>>>>>> }
>>>>>>
>>>>>> EMSCRIPTEN_KEEPALIVE void doSomething() 
>>>>>> {
>>>>>>     pthread_t thr;
>>>>>>     pthread_create(&thr, NULL, thread, NULL);
>>>>>> }
>>>>>>
>>>>>> To me it seems like it gets locked on spawning threads, IO, ... I 
>>>>>> guess this is not expected behavior, and that this can happen because 
>>>>>> WASM 
>>>>>> threads is a WIP feature. Is there anything else I could do here?
>>>>>>
>>>>>> Cheers,
>>>>>> SFE
>>>>>>
>>>>>> On Friday, July 24, 2020 at 5:35:43 PM UTC+1 alon...@gmail.com wrote:
>>>>>>
>>>>>>> Interesting, so this can use pthreads from the main thread ok, but 
>>>>>>> not when starting from a pthread?
>>>>>>>
>>>>>>> That is a less-tested use case, so it's possible you've run into a 
>>>>>>> bug. Building with -s PTHREADS_DEBUG may help with extra logging. But 
>>>>>>> it 
>>>>>>> may be best to try to reduce this to a small testcase, as it may need 
>>>>>>> to be 
>>>>>>> debugged in depth.
>>>>>>>
>>>>>>> On Thu, Jul 23, 2020 at 7:46 AM Segmentation Fault Error <
>>>>>>> segmentation...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hello everyone,
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> I have been using for a while emscripten to compile a large 
>>>>>>>> library. Since its operations take long time, I moved the module to a 
>>>>>>>> web 
>>>>>>>> worker, where I can call functions without blocking the UI. And it has 
>>>>>>>> worked fantastic so far!
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> To further improve performance, I then enabled pthreads in the 
>>>>>>>> toolchain. I noticed then that the execution got stuck. Somehow this 
>>>>>>>> issue 
>>>>>>>> does not occur if the module is executed on the main UI thread, 
>>>>>>>> instead of 
>>>>>>>> the web worker.
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> I have left a link below, to the demo code on how to reproduce the 
>>>>>>>> issue: a function that launches a thread, that launches several 
>>>>>>>> threads. It 
>>>>>>>> happens that this second level never gets executed if the function was 
>>>>>>>> called from a web worker.
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> Maybe I am missing something here, any idea?
>>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>
>>>>>>>> SFE
>>>>>>>>
>>>>>>>> Link: 
>>>>>>>> https://drive.google.com/file/d/1EtkdRBN1Y8QpsRE19BH5AePAD3VLAV6U/view?usp=sharing
>>>>>>>>
>>>>>>>> -- 
>>>>>>>> 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 emscripten-disc...@googlegroups.com.
>>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/d/msgid/emscripten-discuss/141a16e4-647e-484c-b36a-8db45addaec8o%40googlegroups.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/141a16e4-647e-484c-b36a-8db45addaec8o%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> -- 
>>>>> 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 emscripten-disc...@googlegroups.com.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/emscripten-discuss/df1255b4-7a74-4b00-9ea7-300ec039c5b6n%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/emscripten-discuss/df1255b4-7a74-4b00-9ea7-300ec039c5b6n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>> -- 
>>>> 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 emscripten-disc...@googlegroups.com.
>>>>
>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2-jXJingg7HZehLFFtBG24dT0uijNUo0J%2BZhbq-YKPf6w%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2-jXJingg7HZehLFFtBG24dT0uijNUo0J%2BZhbq-YKPf6w%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>

-- 
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 emscripten-discuss+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/458f7d1a-0038-443f-bf56-46defcb960ben%40googlegroups.com.

Reply via email to