|
748 | 748 | } |
749 | 749 | if (line.startsWith('!')){ |
750 | 750 | setTimeout(async()=> { await os.exec("pg_dump", "-U", "postgres", "--inserts", "-j", "1", "-v", "-c", "-C", "-f", "/tmp/out.sql", "--disable-dollar-quoting", "postgres") } , 0 ) |
| 751 | +//setTimeout(async()=> { await os.exec("pg_dump", "host=/tmp/pglite/base sslmode=disable user=postgres dbname=template1") } , 0 ) |
751 | 752 | return |
752 | 753 | } |
753 | 754 |
|
|
817 | 818 |
|
818 | 819 | const { WasmTerminal } = await /**/ import("https://pmp-p.ddns.net/pglite-web/vtx.js") |
819 | 820 |
|
820 | | - Module.vt = new WasmTerminal("repl", 200, 60, 10) |
| 821 | + Module.vt = new WasmTerminal("repl", 200, 55, 16) |
821 | 822 |
|
822 | 823 | Module.bc = new BroadcastChannel("pglite") |
823 | 824 |
|
824 | 825 |
|
825 | | - const pg_lck = "/tmp/pglite/base/.s.PGSQL.5432.lck.in" |
| 826 | + const pg_lck = "/tmp/pglite/base/.s.PGSQL.5432.lock.in" |
826 | 827 | const pg_in = "/tmp/pglite/base/.s.PGSQL.5432.in" |
827 | 828 | const pg_out = "/tmp/pglite/base/.s.PGSQL.5432.out" |
828 | 829 |
|
|
836 | 837 | FS.rename(pg_lck, pg_in) |
837 | 838 | console.log("send_to_pglite(sf):", count) |
838 | 839 | Module._interactive_one() |
839 | | - if (os.FS.analyzePath(pg_in).exists) { |
| 840 | + if (os.FS.analyzePath(pg_out).exists) { |
840 | 841 | const fstat = FS.stat(pg_out) |
841 | 842 | console.log("pgreply", fstat.size) |
842 | 843 | var stream = FS.open(pg_out, 'r'); |
|
953 | 954 | } |
954 | 955 |
|
955 | 956 | function os_sched_yield() { |
| 957 | +console.warn("--os_sched_yield--") |
| 958 | + const pg_lck = "/tmp/pglite/base/.s.PGSQL.5432.lock.in" |
956 | 959 | const pg_in = "/tmp/pglite/base/.s.PGSQL.5432.in" |
957 | 960 | const pg_out = "/tmp/pglite/base/.s.PGSQL.5432.out" |
| 961 | + |
| 962 | + if (os.FS.analyzePath(pg_lck).exists) { |
| 963 | + os.FS.rename(pg_lck, pg_in) |
| 964 | + console.log("rename lock for send:", pg_lck,'->', pg_in) |
| 965 | + } |
| 966 | + |
958 | 967 | if (os.FS.analyzePath(pg_in).exists){ |
959 | 968 | // call interactive one |
960 | | - const sf_data = os.FS.readFileSync(pg_in) |
| 969 | + vm._use_wire(1) |
| 970 | + vm._interactive_write(0) |
| 971 | + var sf_data = os.FS.readFileSync(pg_in) |
| 972 | + console.log("os_sched_yield/send_to_pglite(sf):", pg_in, sf_data.byteLength) |
961 | 973 | vm._interactive_one() |
962 | | - const fstat = vm.FS.stat(pg_out) |
963 | | - console.log("socket file",sf_data.length, "pgreply", fstat.size) |
| 974 | + if (os.FS.analyzePath(pg_out).exists) { |
| 975 | + //sf_data = os.FS.readFileSync(pg_out) |
| 976 | + const fstat = os.FS.stat(pg_out) |
| 977 | + console.log("socket file", sf_data.length, "pgreply", fstat.size) |
| 978 | + } else { |
| 979 | + console.warn('no reply from server') |
| 980 | + } |
964 | 981 | } else { |
965 | 982 | console.log('sched_yield - no aio') |
966 | 983 | } |
|
1050 | 1067 | globalThis.async_wasi_init = async_wasi_init |
1051 | 1068 |
|
1052 | 1069 |
|
1053 | | - console.log("Using wasi : easywasi") |
| 1070 | + console.log("Using wasi : dinovm-wasm32_wasip1 (easywasi)") |
1054 | 1071 | console.log("---------------------") |
1055 | 1072 |
|
1056 | | - import { WasiPreview1 } from 'easywasi' |
| 1073 | + import { wasm32_wasip1 } from 'easywasi' |
1057 | 1074 |
|
1058 | 1075 | async function os_exec(bin, ...stack) { |
1059 | 1076 | var kw = {PWD: '/'} |
|
1066 | 1083 | var argv= [bin] |
1067 | 1084 | argv.push(...stack) |
1068 | 1085 |
|
1069 | | - var wasi = new WasiPreview1({ |
| 1086 | + var wasi = new wasm32_wasip1({ |
1070 | 1087 | fs: os.FS, |
1071 | 1088 | args: argv, |
1072 | 1089 | env: kw, |
|
1093 | 1110 | } catch (x) { |
1094 | 1111 | console.trace() |
1095 | 1112 | console.warn("abnormal program termination", x) |
| 1113 | + const dv = new DataView(app.instance.exports.memory.buffer) |
| 1114 | + ec = dv.getUint8(0); |
1096 | 1115 | } |
1097 | 1116 | console.log(`${bin} ${wasi.args} exit code = ${ec}`) |
1098 | 1117 | return ec |
|
0 commit comments