In general those GROWABLE_* functions are intended for automatic transformation, correct. They could be used directly too, but most code that could use them should already be transformed automatically, I think. But I guess you could export them, and use them outside.
On Thu, Dec 5, 2019 at 1:26 PM Brion Vibber <[email protected]> wrote: > Doing further testing, I think there's still some bugs in the standard > library when using threading together with growable memory; I found my > threaded decoders sometimes hang a few seconds in, shortly after growing > memory. > > I filed https://github.com/emscripten-core/emscripten/issues/9963 with a > workaround for emscripten_futex_wake failing when the views are out of > date, though I think there are other similar bugs remaining. > > -- brion > > On Thu, Dec 5, 2019 at 11:00 AM Brion Vibber <[email protected]> wrote: > >> I've been updating my ogv.js codecs to support growable memory in all my >> variant builds, including JS, Wasm, and Wasm+pthreads. >> >> My JS library mix-ins need access to memory to transfer data in and out, >> and for pthreads this means they must handle the case where HEAPU8 etc are >> out of date because of growth from another thread. Since I'm mostly >> creating TypedArray views and copying them in or out, the easiest thing >> seems to be create views around wasmMemory.buffer, which always has the >> current-sized backing ArrayBuffer, and just not worry about HEAPU8, >> HEAPU32, etc. >> >> (I don't think this works with fastcomp, but it does work with WASM=0 >> output on upstream backend using wasm2js.) >> >> There are wrapper functions in growableHeap.js for individual >> loads/stores and creation of views such as GROWABLE_HEAP_VIEW_U8 which do >> the same thing, but as I understand this only gets included on pthread >> builds. Is there a preferred method of access to these functions, or are >> they meant only to be used as transformations? (The JS optimizer transforms >> individual accesses into HEAP* into GROWABLE_HEAP_LOAD_* and *_STORE_* >> functions so I think it might already be handling those magically, but >> doesn't seem to transform anything to the view creation functions.) >> >> -- brion >> > -- > 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/CAFnWYT%3DjeWi9ODQSeqCnPc6cf0hbyYOqDUS%3DfPdFMvnp_L9KxA%40mail.gmail.com > <https://groups.google.com/d/msgid/emscripten-discuss/CAFnWYT%3DjeWi9ODQSeqCnPc6cf0hbyYOqDUS%3DfPdFMvnp_L9KxA%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/CAEX4NpQOOF-a9PkFdkAp_fVxz4AsiSXDv4NjvU2RwvSAwYCWCw%40mail.gmail.com.
