@@ -229,7 +229,8 @@ var WasiLibrary = {
229229 }
230230 return ret ;
231231 } ,
232- #else
232+ #endif
233+ #if ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS
233234 // MEMFS filesystem disabled lite handling of stdout and stderr:
234235 $printCharBuffers : [ null , [ ] , [ ] ] , // 1 => stdout, 2 => stderr
235236 $printCharBuffers__internal : true ,
@@ -247,11 +248,9 @@ var WasiLibrary = {
247248 buffer . push ( curr ) ;
248249 }
249250 } ,
250- #endif // SYSCALLS_REQUIRE_FILESYSTEM
251+ #endif
251252
252- #if SYSCALLS_REQUIRE_FILESYSTEM
253- fd_write__deps : [ '$doWritev' ] ,
254- #elif ( ! MINIMAL_RUNTIME || EXIT_RUNTIME )
253+ #if ( ( ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS ) && ( ! MINIMAL_RUNTIME || EXIT_RUNTIME ) )
255254 $flush_NO_FILESYSTEM__deps : [ '$printChar' , '$printCharBuffers' ] ,
256255 $flush_NO_FILESYSTEM : ( ) = > {
257256 // flush anything remaining in the buffers during shutdown
@@ -261,17 +260,41 @@ var WasiLibrary = {
261260 if ( printCharBuffers [ 1 ] . length ) printChar ( 1 , { { { charCode ( "\n" ) } } } ) ;
262261 if ( printCharBuffers [ 2 ] . length ) printChar ( 2 , { { { charCode ( "\n" ) } } } ) ;
263262 } ,
264- fd_write__deps : [ '$flush_NO_FILESYSTEM' , '$printChar' ] ,
265- fd_write__postset : ( ) = > addAtExit ( 'flush_NO_FILESYSTEM()' ) ,
263+ #if SYSCALLS_REQUIRE_FILESYSTEM
264+ fd_write__postset : ( ) => addAtExit ( 'if(ENVIRONMENT_IS_WASM_WORKER) flush_NO_FILESYSTEM()' ) ,
266265#else
267- fd_write__deps : [ '$printChar' ] ,
266+ fd_write__postset : ( ) = > addAtExit ( 'flush_NO_FILESYSTEM()' ) ,
267+ #endif
268+ #endif
269+
270+ fd_write__deps : [
271+ #if SYSCALLS_REQUIRE_FILESYSTEM
272+ '$doWritev' ,
273+ #endif
274+ #if ( ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS )
275+ '$printChar' ,
276+ #if ( ! MINIMAL_RUNTIME || EXIT_RUNTIME )
277+ '$flush_NO_FILESYSTEM' ,
268278#endif
279+ #endif
280+ ] ,
269281 fd_write : ( fd , iov , iovcnt , pnum ) => {
270282#if SYSCALLS_REQUIRE_FILESYSTEM
283+ #if WASM_WORKERS
284+ if ( ! ENVIRONMENT_IS_WASM_WORKER ) {
285+ #endif // WASM_WORKERS
271286 var stream = SYSCALLS . getStreamFromFD ( fd ) ;
272287 var num = doWritev ( stream , iov , iovcnt ) ;
273- #else
274- // hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0
288+ #if WASM_WORKERS
289+ } else {
290+ // Hack to support printf in WASM workers in a simple way.
291+ // We support at least stdout, stderr.
292+ #endif // WASM_WORKERS
293+ #endif // SYSCALLS_REQUIRE_FILESYSTEM
294+ #if ! SYSCALLS_REQUIRE_FILESYSTEM || WASM_WORKERS
295+ #if ! SYSCALLS_REQUIRE_FILESYSTEM
296+ // Hack to support printf in SYSCALLS_REQUIRE_FILESYSTEM=0
297+ #endif
275298 var num = 0 ;
276299 for ( var i = 0 ; i < iovcnt ; i ++ ) {
277300 var ptr = { { { makeGetValue ( 'iov' , C_STRUCTS . iovec . iov_base , '*' ) } } } ;
@@ -282,7 +305,10 @@ var WasiLibrary = {
282305 }
283306 num += len ;
284307 }
285- #endif // SYSCALLS_REQUIRE_FILESYSTEM
308+ #endif
309+ #if SYSCALLS_REQUIRE_FILESYSTEM && WASM_WORKERS
310+ }
311+ #endif
286312 { { { makeSetValue ( 'pnum' , 0 , 'num' , SIZE_TYPE ) } } } ;
287313 return 0 ;
288314 } ,
0 commit comments