* shutdown closes the listener so that no new connections are accepted. it also starts a goroutine that will hammer (stop all running requests) the server after DefaultHammerTime. */
()
| 368 | after DefaultHammerTime. |
| 369 | */ |
| 370 | func (srv *endlessServer) shutdown() { |
| 371 | if srv.getState() != STATE_RUNNING { |
| 372 | return |
| 373 | } |
| 374 | |
| 375 | srv.setState(STATE_SHUTTING_DOWN) |
| 376 | if DefaultHammerTime >= 0 { |
| 377 | go srv.hammerTime(DefaultHammerTime) |
| 378 | } |
| 379 | // disable keep-alives on existing connections |
| 380 | srv.SetKeepAlivesEnabled(false) |
| 381 | err := srv.EndlessListener.Close() |
| 382 | if err != nil { |
| 383 | log.Println(syscall.Getpid(), "Listener.Close() error:", err) |
| 384 | } else { |
| 385 | log.Println(syscall.Getpid(), srv.EndlessListener.Addr(), "Listener closed.") |
| 386 | } |
| 387 | } |
| 388 | |
| 389 | /* |
| 390 | hammerTime forces the server to shutdown in a given timeout - whether it |
no test coverage detected