]> Cypherpunks.ru repositories - goredo.git/blobdiff - js.go
Fix JS deadlock and various optimizations
[goredo.git] / js.go
diff --git a/js.go b/js.go
index ab1190e00c00759f48899030271986704d3c9ae4..d3ed7bb3fb752b5b7566c1251db7ae11b3c93a1f 100644 (file)
--- a/js.go
+++ b/js.go
@@ -39,7 +39,7 @@ func jsInit() {
        if jsrRaw != "" {
                JSR = mustParseFd(jsrRaw, "JSR")
                JSW = mustParseFd(jswRaw, "JSW")
-               jsRelease()
+               jsRelease("ifchange entered")
                return
        }
        if *JobsN == 0 {
@@ -52,26 +52,27 @@ func jsInit() {
                panic(err)
        }
        for i := uint(0); i < *JobsN; i++ {
-               jsRelease()
+               jsRelease("initial fill")
        }
 }
 
-func jsRelease() {
+func jsRelease(ctx string) {
        if JSW == nil {
                return
        }
-       trace(CJS, "release")
+       trace(CJS, "release from %s", ctx)
        if n, err := JSW.Write([]byte{0}); err != nil || n != 1 {
                panic("can not write JSW")
        }
 }
 
-func jsAcquire() {
+func jsAcquire(ctx string) {
        if JSR == nil {
                return
        }
-       trace(CJS, "acquire")
+       trace(CJS, "acquire for %s", ctx)
        if n, err := JSR.Read([]byte{0}); err != nil || n != 1 {
                panic("can not read JSR")
        }
+       trace(CJS, "acquired for %s", ctx)
 }