Should this issue be raised in the emsdk repo? or left aside, until we have
a final release of the threads feature?
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 [email protected] 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 <
>> [email protected]> 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 [email protected].
>>> 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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/emscripten-discuss/df1255b4-7a74-4b00-9ea7-300ec039c5b6n%40googlegroups.com.