I tried set SHARED_MEMORY=1 both for compile and linking, but now I have
this error from linker:
wasm-ld: error: --shared-memory is disallowed by lto.tmp because it was not
compiled with 'atomics' or 'bulk-memory' features

Seems that I need to set PTHREADS anyway. I don't want use PTHREADS because
I don't know how it affects performance of wasm, can it slowdown the
overall performance?


сб, 5 мар. 2022 г. в 03:27, 'Thomas Lively' via emscripten-discuss <
[email protected]>:

> Also note that you probably do want to use atomic operations to read and
> write to the shared memory, even if you're using JS on one thread and Wasm
> on another. If you don't use atomics, there's no guarantee that the values
> written on one thread will actually become visible on the other thread when
> you expect them to.
>
> On Fri, Mar 4, 2022 at 11:49 AM 'Sam Clegg' via emscripten-discuss <
> [email protected]> wrote:
>
>> Historically the `-pthead` flag (or `-s USE_PTHREADS`) is the way to get
>> shared memory.   Is there some reason you have not wanted to use that
>> flag?  (is it code size
>> of the resulting JS.. if so we are working on reducing that).
>>
>> As it happens we just today landed a new `-s SHARED_MEMORY` flag I think
>> gives you exactly what you want without the overhead of the pthread JS
>> library code: https://github.com/emscripten-core/emscripten/pull/16419.
>>
>> cheers,
>> sam
>>
>> On Fri, Mar 4, 2022 at 10:29 AM Александр Гурьянов <[email protected]>
>> wrote:
>>
>>> https://github.com/WebAssembly/binaryen/pull/4525
>>>
>>>
>>> пт, 4 мар. 2022 г. в 15:43, Александр Гурьянов <[email protected]>:
>>>
>>>> Hi, I want to use shared memory for my WebAssembly module. It's needed
>>>> for js-dos. Currently emulation works in worker and frame updates are send
>>>> using postMessage. I want to use SharedArrayBuffer to avoid copying/sending
>>>> big rgba data.
>>>>
>>>> I dont' need to use pthread or threading, I just want to share memory
>>>> between worker and main process. How I can say emscripten to generate
>>>> "shared" memory imort.
>>>>
>>>> I found similar question here:
>>>> https://github.com/emscripten-core/emscripten/issues/12098
>>>> As suggested I tried wasm2wat and then wat2wasm, but it not working for
>>>> me. Looks like it affects  -s INVOKE_RUN=0, because after wasm2wat my
>>>> module immediately starts and I can't provide own memory.
>>>>
>>>> Without wasm2wat I have this error:
>>>>
>>>> LinkError: WebAssembly.instantiate(): mismatch in shared state of
>>>> memory, declared = *0*, imported = *1*
>>>>
>>>> After wasm2wat this:
>>>>
>>>> LinkError: WebAssembly.instantiate(): mismatch in shared state of
>>>> memory, declared = *1*, imported = *0*
>>>>
>>>> Can we add some pass to binaryen for turning non-shared memory into
>>>> shared?
>>>>
>>> --
>>> 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/CAKOm%3DVE24Q4%2Bewi5QBSdmuuRf7F-FCk_1TM7tZxexwrMOzXdqw%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVE24Q4%2Bewi5QBSdmuuRf7F-FCk_1TM7tZxexwrMOzXdqw%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 [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2_UWBhM-2yOG_6aUDPa_%3DX%3DmDJOxaC00Bo8CbQa6cDbYw%40mail.gmail.com
>> <https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2_UWBhM-2yOG_6aUDPa_%3DX%3DmDJOxaC00Bo8CbQa6cDbYw%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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/emscripten-discuss/CAJZD_EWNu%3Di0%3DACiKbuPyTOUAckT1SDceosApBvJj6VCo8-WYQ%40mail.gmail.com
> <https://groups.google.com/d/msgid/emscripten-discuss/CAJZD_EWNu%3Di0%3DACiKbuPyTOUAckT1SDceosApBvJj6VCo8-WYQ%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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVFgLTrfXrMBjSyUy_eczWoaAF2L4zWQKPPAr3uizNWt1g%40mail.gmail.com.

Reply via email to