@@ -108,6 +108,13 @@ func (r *VM) OpenContext(ctx context.Context, name string) (fs.File, error) {
108108 if err := TryPatch (ctx , r .serial , serialFile ); err != nil {
109109 log .Println ("vm start:" , err )
110110 }
111+ // fsys, _, ok := fs.Origin(ctx)
112+ // if ok {
113+ // cachedfs := metacache.New(fsys)
114+ // srv := p9.NewServer(p9kit.Attacher(cachedfs, p9kit.WithMemAttrStore()), p9.WithServerLogger(ulog.Log))
115+ // log.Println("starting 9p server for shmpipe")
116+ // go srv.Handle(shmpipe, shmpipe)
117+ // }
111118 case "update-screen" :
112119 if r .screenport .IsUndefined () {
113120 log .Println ("vm update-screen: screenport not found" )
@@ -148,12 +155,12 @@ func makeVM(id string, options map[string]any, inWorker bool) (js.Value, js.Valu
148155 var src []any
149156 var readyChannel js.Value
150157 if inWorker {
151- src = []any {string (v86Bundle )}
158+ src = []any {"var thisWorker = self; var process = undefined;" , string (v86Bundle )}
152159 } else {
153160 readyChannel = js .Global ().Get ("MessageChannel" ).New ()
154161 // todo: this is a bit of a hack, but it works
155162 js .Global ().Set ("vmReadyPort" , readyChannel .Get ("port2" ))
156- src = []any {"var self = window.vmReadyPort; var process = undefined;" , string (v86Bundle )}
163+ src = []any {"var thisWorker = window.vmReadyPort; var process = undefined;" , string (v86Bundle )}
157164 }
158165 blob := js .Global ().Get ("Blob" ).New (js .ValueOf (src ), js .ValueOf (map [string ]any {"type" : "text/javascript" }))
159166 url := js .Global ().Get ("URL" ).Call ("createObjectURL" , blob )
0 commit comments