Commit Graph

400 Commits

Author SHA1 Message Date
David Fowler ea7f40c592 Merge pull request #408 from benaadams/CancellationTokenSource
Remove CreateLinkedTokenSource
2015-11-25 01:32:04 -08:00
Stephen Halter 07c0b414f0 Merge branch 'benaadams/faster-headers' into dev 2015-11-23 15:10:24 -08:00
Ben Adams 81dba3961d less work in locks 2015-11-21 14:13:23 +00:00
stephentoub c7d7f0e575 Lazily allocate the RequestAborted CTS
Avoid allocating the CancellationTokenSource unless it's actually requested.  This makes it pay-for-play with regards to code that actually asks for the RequestAborted token and requests that are aborted.
2015-11-21 08:38:48 -05:00
Cesar Blum Silveira e4fd91bb68 Fix hang on Connection: close requests. (#406) 2015-11-20 20:43:52 -08:00
Ben Adams feb40402de merge preamble-output, socket-output 2015-11-21 04:18:06 +00:00
Ben Adams a3173c487a Precomputed header bytes 2015-11-21 00:22:44 +00:00
Stephen Halter 0dbf108353 Smarter unpinning of MemoryPoolBlock2 in SocketOutput 2015-11-20 12:59:53 -08:00
Stephen Halter 2572256d3f Use MemoryPool2 for SocketOutput Buffers
Add ProducingStart and ProducingComplete methods to ISocketOutput.
These new methods can help prevent double buffering when encoding.
2015-11-20 04:41:33 -08:00
Ben Adams 9d852632c0 Remove _nullBuffer
Was meant to be removed as part of #335

/cc @rynowak
2015-11-20 05:51:25 +00:00
Ben Adams 174ec739bb Don't log ODEs thrown from _abortedCts.Cancel 2015-11-20 00:30:08 +00:00
Chris R 1c40548928 Add LoggingConnectionFilter. 2015-11-19 16:28:45 -08:00
Ben Adams 3c7431aa35 Change disconnect to abort cts 2015-11-19 23:25:31 +00:00
Ben Adams 58d8c851c5 Remove CreateLinkedTokenSource
Resolves  #407
2015-11-19 21:50:10 +00:00
Cesar Blum Silveira 307e020703 Don't crash the server if a connection filter throws synchronously. 2015-11-19 13:27:43 -08:00
Master T efec0feda2 Fix merge 2015-11-18 08:29:30 +01:00
Master T 2cdd659e67 Fix indentation 2015-11-18 05:11:57 +01:00
Master T 85eb6ab600 Code cleanup 2015-11-18 05:06:29 +01:00
Master T 8e910baf04 Improve based on pull request feedback 2015-11-18 05:06:27 +01:00
Master T bd30f28dfd Implement client certificate authentication 2015-11-18 05:05:50 +01:00
David Fowler b8f01cf674 Merge pull request #378 from benaadams/thread-count
Network thread count defaults
2015-11-17 07:34:29 -08:00
Stephen Halter 5d59a20178 Merge branch 'benaadams/no-delay' into dev 2015-11-16 20:56:26 -08:00
David Fowler b1a772f19c Merge pull request #393 from benaadams/patch-1
Disconnect is Debug not Error
2015-11-16 20:29:50 -08:00
David Fowler 9c47796ec0 Merge pull request #312 from benaadams/MemoryPoolIterator2-GetString
Reduce GetString allocs and conversions
2015-11-16 20:13:38 -08:00
Ben Adams 4dc4346fca Reduce GetString allocs and conversions 2015-11-17 03:46:09 +00:00
Stephen Halter f7a5c38f65 Follow common pattern for implementing IHttpRequestLifetimeFeature 2015-11-16 16:03:55 -08:00
Stephen Halter b73e42b617 Abort request on any write failure 2015-11-16 16:03:53 -08:00
Stephen Halter 874bd29ce1 Throw IOExceptions instead of ODEs after a request is aborted 2015-11-16 16:03:51 -08:00
Stephen Halter 062caf16be Support for IHttpRequestLifetimeFeature 2015-11-16 16:03:50 -08:00
Ben Adams 1cbb273b0d Corrected Exception messages 2015-11-16 16:03:48 -08:00
Ben Adams 5e883827e0 Explain why dispose can't be used 2015-11-16 16:03:46 -08:00
Ben Adams f60f6c92ca Stop streams on finish
Can't use dispose (or close) as can be disposed too early by user code

Resolves #263
2015-11-16 16:03:44 -08:00
David Fowler 5774cf9f1e Merge pull request #390 from benaadams/stack2queue
ConcurrentStack -> ConcurrentQueue
2015-11-16 15:36:29 -08:00
David Fowler 7ba0f7da19 Merge pull request #377 from benaadams/legacy
Result -> GetAwaiter().GetResult() for legacy
2015-11-16 12:13:45 -08:00
David Fowler e3a62ff09f Merge pull request #335 from benaadams/used-pool-array
Consume body without allocating or reading
2015-11-16 11:47:18 -08:00
Ben Adams 8941d4b620 Disconnect is Debug not Error
Resolves #392
2015-11-16 17:44:24 +00:00
Ben Adams 7691a7cc23 Improved Send100 Check 2015-11-16 06:43:49 +00:00
Ben Adams ecc439555e Reuse ReadAsync for Consume 2015-11-15 22:27:39 +00:00
Ben Adams 1589b54018 Early bail, completed tasks+Interlocked 2015-11-15 21:56:20 +00:00
Ben Adams f089abd337 Consume in single call 2015-11-15 21:39:36 +00:00
Ben Adams f48e6ba51a Add Async in method name 2015-11-15 21:28:36 +00:00
Ben Adams f7bdc5a4e9 Skip non-consumed rather than reading 2015-11-15 21:28:33 +00:00
Ben Adams bd6e181d93 ConcurrentStack -> ConcurrentQueue 2015-11-15 21:17:14 +00:00
Troy Dai 2e2dfd87c1 Fix byte[] array allocation in IsDarwin 2015-11-14 22:55:25 -08:00
Cesar Blum Silveira a3a49d21b8 Reset Frame.Scheme on each request (#366). 2015-11-13 16:05:10 -08:00
Ben Adams 96c1668c54 Result -> GetAwaiter().GetResult() for legacy 2015-11-13 20:08:59 +00:00
Ben Adams 558b0ae643 statics to instance 2015-11-13 20:08:11 +00:00
Ben Adams d82c571831 Trim exposed KestrelThread api 2015-11-13 20:08:11 +00:00
Ben Adams a95318c616 Network thread count defaults 2015-11-13 20:00:32 +00:00
Ben Adams 59a95f43a3 Set NoDelay as default
Resolves  #374
2015-11-13 19:33:24 +00:00
Murat Girgin 52fe469688 Update project.json 2015-11-12 22:59:34 -08:00
Stephen Halter fc346f7768 Avoid some closure allocations in SocketOutput 2015-11-12 17:08:44 -08:00
Stephen Halter 59cdd60af6 Don't pre-complete too many writes 2015-11-12 17:08:43 -08:00
Stephen Halter 6b995362f1 Merge branch 'benaadams/odd-sync' into dev 2015-11-12 16:47:27 -08:00
Stephen Halter 983997ab9c Merge branch 'nickcraver/cancellation' into dev 2015-11-12 16:15:59 -08:00
Stephen Halter 9958427db7 Merge branch 'benaadams/result-getawaiter' into dev 2015-11-12 16:05:50 -08:00
Stephen Halter 0ead24680d Merge branch 'benaadams/reduce-log-boxing' into dev 2015-11-12 16:01:06 -08:00
Stephen Halter fdfd7dcf36 Merge branch 'benaadams/Task.Run-QueueUserWorkItem' into dev 2015-11-12 15:51:42 -08:00
N. Taylor Mullen 86e1924cad Remove System beta tag in project.json for coreclr packages. 2015-11-12 12:23:45 -08:00
Nick Craver a45a671b22 Make ReadAsync state overload 451 only and private. 2015-11-11 18:55:56 -05:00
Stephen Halter e5ff33eda2 Remove UvAsyncHandle.DangerousClose
- This should stop the AVs we've been seeing in some of our test runs
2015-11-11 15:24:09 -08:00
Ben Adams 0500043cc9 .Result -> .GetAwaiter().GetResult() 2015-11-11 09:46:56 +00:00
Nick Craver d1221e82c1 Pass cancellation tokens down consistently
I'm assuming these are oversights since the usage is inconsistent.
Otherwise this served only as a mild waste of time :)
2015-11-10 22:58:19 -05:00
Stephen Halter bdbd9ae7a6 Merge branch 'benaadams/socketoutput-tasks' into dev 2015-11-10 15:55:10 -08:00
Ben Adams d32937eafe Add tests for non-immediate byte counting 2015-11-10 23:17:40 +00:00
Ben Adams 34cec3448d SocketOutput to Tasks 2015-11-10 19:53:43 +00:00
Troy Dai d0bdede709 Update the reference link in comments of SockAddr 2015-11-10 11:11:32 -08:00
Troy Dai d9c15e0180 Add references to socket in comments 2015-11-10 10:37:12 -08:00
Ben Adams 344c821f83 Remove sync block->task
await rather than synchronously blocking and then returning a
Task.FromResult
2015-11-10 18:23:44 +00:00
Troy Dai d08b83a1c7 Fix get IPAddress for Darwin 2015-11-10 10:04:10 -08:00
Ben Adams c0f82765aa Move logging to new style 2015-11-10 10:43:51 +00:00
Ben Adams a2c4e3a654 Task.Run -> ThreadPool.QueueUserWorkItem
Task.Run eventually ends up being QueueUserWorkItem.
The returned task is ignored, so no added goodness.
Short running item.

Cut out the middleman
2015-11-10 07:28:17 +00:00
Ben Adams 278bd9c962 Completed Task opt 2015-11-09 04:32:08 +00:00
Stephen Halter 9d19eed88f Merge branch 'benaadams/memorypool2-allocate' into dev 2015-11-05 12:16:43 -08:00
Stephen Halter bb9f83186b Remove unused parameter from ListenerSecondary.ReadStartCallback 2015-11-05 12:09:50 -08:00
Stephen Halter fff28990fe Ensure ListenerSecondary buffer isn't double freed or freed too early
- Call buf_init in StartAsync so we have access to a KestrelThread
2015-11-04 16:21:29 -08:00
Stephen Halter 74f08c16df Merge branch 'benaadams/listenersecondary-allocs' into dev 2015-11-04 15:34:42 -08:00
Ben Adams 3e7969cefe Move handle creation to constructor 2015-11-04 22:44:30 +00:00
Stephen Halter 272ce27c79 Merge branch 'benaadams/delegates' into dev 2015-11-04 14:21:13 -08:00
Ben Adams 5cef608e52 Dispose _ptr 2015-11-04 22:20:51 +00:00
Ben Adams 22dfd31261 More readable loop condition 2015-11-04 22:04:19 +00:00
Stephen Halter 35bbddf9b5 Merge branch 'benaadams/listener-primary-alloc' into dev 2015-11-04 10:14:52 -08:00
Stephen Halter 04b2885f10 Merge branch 'benaadams/listener-allocation' into dev 2015-11-04 10:12:33 -08:00
Stephen Halter f4be290d4a Merge branch 'benaadams/connection-allocs' into dev 2015-11-04 10:08:36 -08:00
Ben Adams cc84097016 Listener - remove closure allocation 2015-11-04 12:36:32 +00:00
Ben Adams 1d4b9d6633 ListenerPrimary - reduce closure allocation
Still captures string pipeName
2015-11-04 12:33:51 +00:00
Ben Adams d104e8a08d Reduce delegate allocation 2015-11-04 12:31:44 +00:00
Ben Adams 34c1a671f0 ListenerSecondary - reduce closure allocation 2015-11-04 12:20:00 +00:00
Ben Adams 5ae1c4ecb2 MemoryPool2 Allocate returns newest
Rather than a while loop on Allocate; return last memory block created
rather than returning it to the pool and checking if one can be removed.
2015-11-04 08:37:12 +00:00
Ben Adams c113c0d3a2 Don't alloc array per header
i.e `new StringValues(string)` rather than `new StringValues(new [] {
string } )`
2015-11-04 07:11:55 +00:00
Cesar Blum Silveira 889a24278d Merge branch 'release' into dev 2015-11-02 17:36:41 -08:00
Cesar Blum Silveira eaee76dfeb Strong name everything. 2015-11-02 16:16:55 -08:00
Ben Adams ea6f6b10dc Don't capture connection on closure 2015-11-01 13:27:17 +00:00
John Luo b466c3b7d7 Reacting to Hosting changes 2015-10-30 14:19:55 -07:00
Stephen Halter fe654598f6 Merge branch 'release' into dev 2015-10-29 14:30:02 -07:00
Stephen Halter 85202b0174 Merge branch 'benaadams/read-to-null-buffer' into release 2015-10-29 12:24:40 -07:00
Stephen Halter 1722150ee9 Do nothing in KestrelThread.Stop if libuv fails to load
This prevents DllNotFoundExceptions from being masked by NullReferenceExceptions
2015-10-29 12:21:25 -07:00
Troy Dai e9a6061023 Make Frame implements IHttpConnectionFeature
Provide RemoteIPAddress as well as RemotePort
2015-10-29 10:08:35 -07:00
Ben Adams bdadc8a3da Move comment into loop, remove noop 2015-10-28 22:44:35 +00:00
Ben Adams 4bba074d77 Read to null buffer
Read to null buffer rather than Stream.Null as the CopyToAsync will
create a `new byte[]` on each call
bc14660885/src/mscorlib/src/System/IO/Stream.cs (L218)
of size 81920 bytes!
bc14660885/src/mscorlib/src/System/IO/Stream.cs (L48)
2015-10-28 08:53:11 +00:00