What version of Go are you using (go version)?

go 1.6.2 mac/amd64

What operating system and processor architecture are you using (go env)?

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/data/apps/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments 
-fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

What did you do?

package main

import (
    "net/http"
    "strconv"
    "fmt"
)

func main() {
    http.HandleFunc("/", httpHandler)
    http.ListenAndServe(":8001", nil)
}

func httpHandler(w http.ResponseWriter, r *http.Request) {
    b, _ := strconv.ParseBool(r.URL.Query().Get("loop"))
    if b {
        loop()
    }
    fmt.Fprintf(w, "ok")
}

func loop() {
    i := 0
    for {
        if i == 10000 {
            i = 0
        }
        i++
    }
}

1. curl http://127.0.0.1:8001/?loop=true
2. curl http://127.0.0.1:8001/?loop=false

When the loop to the CPU processing and about 8 times the request, refused to 
all the HTTP request.

What did you expect to see?

export GODEBUG=schedtrace=1000

SCHED 1010ms: gomaxprocs=8 idleprocs=8 threads=6 spinningthreads=0 
idlethreads=3 runqueue=0 [0 0 0 0 0 0 0 0]
SCHED 2016ms: gomaxprocs=8 idleprocs=8 threads=6 spinningthreads=0 
idlethreads=3 runqueue=0 [0 0 0 0 0 0 0 0]
SCHED 3019ms: gomaxprocs=8 idleprocs=8 threads=6 spinningthreads=0 
idlethreads=3 runqueue=0 [0 0 0 0 0 0 0 0]
SCHED 4028ms: gomaxprocs=8 idleprocs=7 threads=6 spinningthreads=0 
idlethreads=2 runqueue=0 [0 0 0 0 0 0 0 0]
SCHED 5033ms: gomaxprocs=8 idleprocs=5 threads=6 spinningthreads=0 
idlethreads=0 runqueue=0 [0 0 0 0 0 0 0 0]
SCHED 6033ms: gomaxprocs=8 idleprocs=3 threads=8 spinningthreads=0 
idlethreads=0 runqueue=0 [0 0 0 0 0 0 0 0]
SCHED 7035ms: gomaxprocs=8 idleprocs=0 threads=10 spinningthreads=0 
idlethreads=0 runqueue=0 [0 0 0 0 0 0 0 0]
SCHED 8037ms: gomaxprocs=8 idleprocs=0 threads=10 spinningthreads=0 
idlethreads=0 runqueue=1 [0 0 0 0 0 0 0 0]
SCHED 9044ms: gomaxprocs=8 idleprocs=0 threads=10 spinningthreads=0 
idlethreads=0 runqueue=1 [0 0 0 0 0 0 0 0]
SCHED 10050ms: gomaxprocs=8 idleprocs=0 threads=10 spinningthreads=0 
idlethreads=0 runqueue=1 [0 0 0 0 0 0 0 0]
SCHED 11059ms: gomaxprocs=8 idleprocs=0 threads=10 spinningthreads=0 
idlethreads=0 runqueue=1 [0 0 0 0 0 0 0 0]
SCHED 12060ms: gomaxprocs=8 idleprocs=0 threads=10 spinningthreads=0 
idlethreads=0 runqueue=1 [0 0 0 0 0 0 0 0]

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to