- if jsrRaw != "" {
- JSR = mustParseFd(jsrRaw, "JSR")
- JSW = mustParseFd(jswRaw, "JSW")
- jsRelease()
+ if jsRaw != "" {
+ cols := strings.Split(jsRaw, ",")
+ if len(cols) != 2 {
+ log.Fatalln("invalid", EnvJSFd, "format")
+ }
+ JSR = mustParseFd(cols[0], "JSR")
+ JSW = mustParseFd(cols[1], "JSW")
+ jsRelease("ifchange entered")
+
+ killed := make(chan os.Signal, 0)
+ signal.Notify(killed, syscall.SIGTERM, syscall.SIGINT)
+ go func() {
+ <-killed
+ jsTokensM.Lock()
+ for ; jsTokens > 0; jsTokens-- {
+ jsReleaseNoLock()
+ }
+ os.Exit(1)
+ }()