Regarding IndexedDB, you can use the emterpreter option to access it synchronously, see
http://kripken.github.io/emscripten-site/docs/api_reference/emscripten.h.html?highlight=emterpreter#indexeddb https://github.com/kripken/emscripten/wiki/Emterpreter - Alon On Tue, Mar 17, 2015 at 5:48 PM, <[email protected]> wrote: > I have been creating a javascript application using a library converted > with Emscripten and was looking for good ways to reduce browser memory > usage. One of the possibilities I have tried to create a filesystem device > with buffer backend (to store file data) in order to avoid allocating a > gigantic Emscripten heap. However, since my converted library uses ftell I > ran into problems with the following code in Emscripten generated output > for the function ftell: > > function _ftell(stream) { > // long ftell(FILE *stream); > // > http://pubs.opengroup.org/onlinepubs/000095399/functions/ftell.html > stream = FS.getStreamFromPtr(stream); > if (!stream) { > ___setErrNo(ERRNO_CODES.EBADF); > return -1; > } > * if (FS.isChrdev(stream.node.mode)) {* > * ___setErrNo(ERRNO_CODES.ESPIPE);* > * return -1;* > * } else {* > return stream.position; > * }* > } > > These lines cause all ftell calls to my "device" to fail and thereby the > entire process stops with errors. (and removing these lines allows my > program to work correctly) This leaves me with three questions: > > 1. Is there a way to allow ftell for devices? > 2. Is there perhaps a better way to override filesystem calls than using > devices in my use case? > 3. Are there any recommended ways to store fairly large amounts of data > for Emscripten use without running out of browser memory? (and causing an > error) I investigated using IndexedDB for this purpose, but it doesn't > appear to work for me due to its asynchronous nature. > > Thanks in advance, > > David > > -- > 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.
