Aliaksandr Valialkin
|
aba783b596
|
Return nil from Server.Serve*() on expected errors such as io.EOF aond errConnClosing
|
2015-11-12 20:07:21 +02:00 |
|
Aliaksandr Valialkin
|
33c0dd1fe2
|
Do not log 'use of closed network connection' error when closing listener in Server.Serve*
|
2015-11-12 19:53:17 +02:00 |
|
Aliaksandr Valialkin
|
6bd9b01126
|
Added support for 'connection: close' request header
|
2015-11-12 18:54:15 +02:00 |
|
Aliaksandr Valialkin
|
6e4b32182e
|
Fixed panic when WorkerFunc returns error and Conn is closed
|
2015-11-12 14:01:04 +02:00 |
|
Aliaksandr Valialkin
|
a4e8e226ff
|
Removed dubious loop for obtaining free worker - just increase the number of workers if 'no free workers' error occur
|
2015-11-11 16:39:59 +02:00 |
|
Aliaksandr Valialkin
|
69758b81d6
|
Accept net.Conn instead of io.ReadWriteCloser in Serve*() methods, since in reality we use net.Conn methods such as RemoteAddr, SetReadDeadline and SetWriteDeadline
|
2015-11-11 16:17:12 +02:00 |
|
Aliaksandr Valialkin
|
ae6a7cc17c
|
Extracted workerPool from server.go into workerpool.go
|
2015-11-11 15:27:27 +02:00 |
|
Aliaksandr Valialkin
|
89e1feae77
|
Reference TimeoutHandler in RequestHandler docs
|
2015-11-11 11:42:17 +02:00 |
|
Aliaksandr Valialkin
|
0d0e179d7b
|
Added RequestCtx.SetResponseBody helper function
|
2015-11-11 11:09:31 +02:00 |
|
Aliaksandr Valialkin
|
ad3452a2e5
|
Removed dubious Cache from RequestCtx - use sync.Pool instead
|
2015-11-11 10:47:16 +02:00 |
|
Aliaksandr Valialkin
|
b6adf1cd39
|
Clean least recently used workers in a separate goroutine. This cleans stale workers even on idle server
|
2015-11-10 17:59:19 +02:00 |
|
Aliaksandr Valialkin
|
fa05bcd728
|
Server worker pool optimization - now incoming connections are served by workers in 'most recently used worker' order. This should keep CPU caches hot
|
2015-11-10 15:24:36 +02:00 |
|
Aliaksandr Valialkin
|
8081e14ca0
|
Use perIPConn pool
|
2015-11-10 15:20:13 +02:00 |
|
Aliaksandr Valialkin
|
e7b70f2c8a
|
Fixed doc typos
|
2015-11-10 12:46:36 +02:00 |
|
Aliaksandr Valialkin
|
a0ee798bbe
|
Added RequestCtx.Init() helper for custom Server implementations
|
2015-11-09 18:41:27 +02:00 |
|
Aliaksandr Valialkin
|
04b68cd1f5
|
Export DefaultConcurrency
|
2015-11-09 17:10:27 +02:00 |
|
Aliaksandr Valialkin
|
827b8b1e82
|
Added TimeoutErrMsg() function to RequestCtx for determining the last error message set via TimeoutError call
|
2015-11-09 17:06:50 +02:00 |
|
Aliaksandr Valialkin
|
3aa2987131
|
Substituted RequestCtx.shadow with more clear timeoutErrMsg
|
2015-11-09 11:03:50 +02:00 |
|
Aliaksandr Valialkin
|
e8bd4f1d82
|
Do not allocate memory for msg in RequestCtx.Error
|
2015-11-09 10:45:33 +02:00 |
|
Aliaksandr Valialkin
|
964f640cd1
|
gofmt
|
2015-11-09 10:43:17 +02:00 |
|
Aliaksandr Valialkin
|
9200e02eb5
|
Consistency fix: readersPool->readerPool, writersPool->writerPool
|
2015-11-09 10:42:09 +02:00 |
|
Aliaksandr Valialkin
|
e8ffadf2df
|
Moved currentTime variable ouside request processing loop
|
2015-11-07 11:09:41 +02:00 |
|
Aliaksandr Valialkin
|
03f8f2408e
|
Increment request id and initialize request time before request reading, so log messages contain correct id and duration for request read errors
|
2015-11-06 16:34:16 +02:00 |
|
Aliaksandr Valialkin
|
5a6e973ab3
|
Log request duration in RequextCtx.Logger()
|
2015-11-06 16:21:49 +02:00 |
|
Aliaksandr Valialkin
|
a7fdc68be0
|
Enforce MaxConnsPerIP limit to connections served via Server.ServeConn()
|
2015-11-05 10:56:04 +02:00 |
|
Aliaksandr Valialkin
|
552dff6fd6
|
Do no hold memory (read/write buffers+RequestCtx data) for idle keep-alive connections. This should reduce memory usage for 100K+ concurrent keep-alive connections to the server
|
2015-11-03 14:16:41 +02:00 |
|
Aliaksandr Valialkin
|
1429b48135
|
Remove reference to conn from buffered reader and writer when releasing RequestCtx. This should help GC a bit :)
|
2015-11-02 19:11:09 +02:00 |
|
Aliaksandr Valialkin
|
fb362174d7
|
initRequestCtx -> initCtx for the sake of consistency
|
2015-11-02 18:28:57 +02:00 |
|
Aliaksandr Valialkin
|
3eaecd9c6c
|
Added ability to limit the number of concurrent client connections per ip
|
2015-11-02 15:09:45 +02:00 |
|
Aliaksandr Valialkin
|
7c83bade48
|
Clear response before calling request handler
|
2015-10-30 12:10:27 +02:00 |
|
Aliaksandr Valialkin
|
7ba1898d05
|
Return net.Addr from RequestCtx.RemoteAddr() and net.IP from RequestCtx.RemoteIP() instead of strings
|
2015-10-27 19:02:11 +02:00 |
|
Aliaksandr Valialkin
|
664d577260
|
Added SetCanonical() methods to RequestHeader and ResponseHeader
|
2015-10-27 13:36:42 +02:00 |
|
Aliaksandr Valialkin
|
d70261286c
|
Added CopyTo, VisitAll and *Bytes* helper functions to Args, RequestHeader and ResponseHeader
|
2015-10-27 12:53:33 +02:00 |
|
Aliaksandr Valialkin
|
a1fca0f209
|
Fixed connection leak on pending connections queue overflow
|
2015-10-26 15:15:58 +02:00 |
|
Aliaksandr Valialkin
|
27862cc299
|
Fixed data races in Request.ReadTimeout() and Response.ReadTimeout(). Documented that the request and response instances cannot be used after ErrReadTimeout error
|
2015-10-26 14:13:33 +02:00 |
|
Aliaksandr Valialkin
|
d76f5c5aba
|
Log connection-related info on error
|
2015-10-23 19:38:16 +03:00 |
|
Aliaksandr Valialkin
|
40e775dce5
|
Added TimeoutHandler
|
2015-10-23 14:56:01 +03:00 |
|
Aliaksandr Valialkin
|
7874b9245a
|
Properly implement request read timeout via SetReadDeadline(). Implement response write timeout
|
2015-10-23 13:26:15 +03:00 |
|
Aliaksandr Valialkin
|
c842617b00
|
microoptimization: convert io.ReadWriter to remoteAddrer only before use
|
2015-10-23 13:01:09 +03:00 |
|
Aliaksandr Valialkin
|
9fc3f767e6
|
Added timeout covering full request read
|
2015-10-22 14:32:20 +03:00 |
|
Aliaksandr Valialkin
|
9a1e1f2e61
|
Renamed ServerCtx to more appropriate RequestCtx
|
2015-10-22 11:46:33 +03:00 |
|
Aliaksandr Valialkin
|
db43ebb688
|
Access ResponseHeader.server directly when writing responses via Server. This improves Server benchmarks by a little margin
|
2015-10-22 11:41:43 +03:00 |
|
Aliaksandr Valialkin
|
b1a76330d5
|
Do not suppress logger in server benchmarks
|
2015-10-21 16:34:12 +03:00 |
|
Aliaksandr Valialkin
|
1ac3807782
|
Added cache for RequestHandler data into ServerCtx
|
2015-10-21 16:29:03 +03:00 |
|
Aliaksandr Valialkin
|
d0deaebb43
|
Added request start time to ServerCtx
|
2015-10-21 16:09:35 +03:00 |
|
Aliaksandr Valialkin
|
37cb5a0c67
|
Added status codes from net/http
|
2015-10-21 16:02:53 +03:00 |
|
Aliaksandr Valialkin
|
d49d752a65
|
Substituted racy ServerCtx.Steal() with ServerCtx.TimeoutError()
|
2015-10-21 15:05:44 +03:00 |
|
Aliaksandr Valialkin
|
ee62382f34
|
Uniformly process all headers
|
2015-10-20 12:36:33 +03:00 |
|
Aliaksandr Valialkin
|
b942a09cbe
|
Added link to godoc
|
2015-10-19 01:25:11 +03:00 |
|
Aliaksandr Valialkin
|
a049630bca
|
initial commit
|
2015-10-19 01:21:09 +03:00 |
|