Commit Graph

622 Commits

Author SHA1 Message Date
Ben Adams c293bbbd1a Reuse headers to prevent values moving to higher GC gens 2016-02-13 01:16:17 +00:00
Stephen Halter f89c959f4f Merge branch 'benaadams/no-spin' into dev 2016-02-12 10:54:48 -08:00
moozzyk fe75aa47db Enabling Kestrel on OSx Mono when not running with dnx
Before moving to dotnet dnx on OSx on Mono would load libuv.dll into the process and Kestrel would use DllImport with __Internal to import functions from the native libraries loaded into the Mono process. With the move to dotnet nothing is preloading libuv to the process so Kestrel must no longer use DllImports with __Internal but the regular ones. Mono seems to load native libraries from the app folder so, the user won't have to install libuv on their own since libuv.dylib is published with the app.
2016-02-11 16:05:32 -08:00
Pranav K c5a8792ece Reacting to CoreCLR package version changes 2016-02-08 09:33:46 -08:00
Cesar Blum Silveira 6757a31fd2 Build with dotnet (#571). 2016-02-01 14:37:47 -08:00
Cesar Blum Silveira 1209eca3fa Normalize request path to NFC and resolve dot segments (#273). 2016-01-28 15:29:29 -08:00
Brennan 15ed03eb26 React to Logging API changes 2016-01-27 14:25:52 -08:00
Stephen Halter a2fe59fb2c Speed up unit tests
- Remove unnecessary uses of Task.Delay
- Change all usages to CancellationToken.None to default(CancellationToken)
  for consistency
2016-01-27 13:01:44 -08:00
Ben Adams 00b8a13b55 Merge+rename+rename resolve 2016-01-26 11:33:14 +00:00
Ben Adams 9f2d685cbf Merge remote-tracking branch 'refs/remotes/aspnet/shalter/always-immediate' into combined-fixes 2016-01-26 02:15:56 +00:00
Stephen Halter a4b8b01c99 Remove immediate parameter from Frame.ProduceStart
- Simply call SocketOutput.WriteAsync(_emptyData) to force headers to be flushed
2016-01-25 11:09:15 -08:00
Stephen Halter 7570da9daa Flush chunked writes before the entire response completes
Ensure chunked writes force an "immediate" write by removing the now
unused immediate parameter from ISocketOutput.Write
2016-01-25 10:34:15 -08:00
Ben Adams 3f414782b9 Remove spinning for blocked socket ops
As per https://github.com/dotnet/corefx/pull/5655
2016-01-24 14:49:25 +00:00
Ben Adams de34d14abb WriteChunked immediate for large responses 2016-01-23 10:48:24 +00:00
Ben Adams 0ca8ca0328 Update FrameResponseStream Cancellation 2016-01-23 10:17:09 +00:00
Stephen Halter 735c0fbbef Added new test to verify failed writes complete all pending write tasks
- Changed MockLibuv to never fall back to real libuv methods.
- Fixed EngineTests.ConnectionCanReadAndWrite
2016-01-23 10:17:07 +00:00
Ben Adams e5238ff383 Only log connection error once 2016-01-23 10:17:06 +00:00
Ben Adams cd621509d0 Complete all writes after error 2016-01-23 10:17:05 +00:00
Ben Adams a97cb81f92 MockConnection Abort 2016-01-23 10:17:03 +00:00
Ben Adams 73bb0ab5b8 SocketOutput Cancellation handling 2016-01-23 10:17:02 +00:00
N. Taylor Mullen b062f851dc Rename AspNet 5 file contents.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:23:51 -08:00
N. Taylor Mullen 3cfe2f3070 Rename AspNet 5 folders and files.
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:23:44 -08:00
Pranav K 40824999c6 Reacting to CoreCLR package version change 2016-01-20 20:58:22 -08:00
Stephen Halter 8ea24f05f4 Merge branch 'benaadams/reduce-sync-over-async' into dev 2016-01-19 16:35:51 -08:00
Ben Adams fa8fe3d085 Complete sync-blocked calls directly 2016-01-19 22:38:08 +00:00
Brennan 63cd6149d1 Removed IsLocal from ConnectionInfo 2016-01-19 08:37:47 -08:00
Ben Adams d3d9c8d546 Write async chunks async 2016-01-18 13:39:13 +00:00
Stephen Halter 129a5ad474 Bypass LibuvStream if no ConnectionFilter wraps it 2016-01-14 15:28:54 -08:00
Stephen Halter e5ad019575 Revert "Merge branch 'benaadams/copyfrom-perf' into dev"
This reverts commit ce61282320, reversing
changes made to 7ef70bc145.
2016-01-14 11:47:23 -08:00
Stephen Halter ce61282320 Merge branch 'benaadams/copyfrom-perf' into dev 2016-01-12 14:24:35 -08:00
Ben Adams caaf9d473b Faster CopyFrom 2016-01-12 21:43:37 +00:00
Stephen Halter 7ef70bc145 Merge branch 'anderman/FindFirstByteFast' into dev 2016-01-12 12:51:50 -08:00
Stephen Halter d9f6ac70a0 Merge branch 'benaadams/using-reorder' into dev 2016-01-12 12:15:54 -08:00
Stephen Halter f32f1c4440 Merge branch 'henkollema/projectjson' into dev 2016-01-12 12:14:35 -08:00
Stephen Halter ab5ef547e1 Make chunked writes atomic 2016-01-11 16:53:46 -08:00
Stephen Halter daa2b7e383 Remove _tasksCompleted from SocketOutput
- _tasksCompleted no longer helps avoid locking longer
2016-01-11 12:40:01 -08:00
Stephen Halter df695accb0 Use TryEnter to acquire SocketOutput._contextLock on the libuv event loop 2016-01-11 12:39:59 -08:00
Stephen Halter e90b61e6c5 Move call to CopyFrom in SocketOutput.WriteAsync inside lock to make writes atomic 2016-01-11 12:39:57 -08:00
Ben Adams 8ac119df76 using reorder (nit) 2016-01-11 19:02:51 +00:00
Thom Kiesewetter 1b09a76ebb Find First Byte Fast 2016-01-11 08:31:52 +01:00
clrjunkie 63e39a257e One-time-use allocated blocks keep reference to source pool / Assert that a block is returned to it's source pool / Managed block are only returned to active Slabs 2016-01-09 19:41:35 +02:00
clrjunkie 8260e5d93f Remove null-conditional operators and asserts (Blocks must return to pools) 2016-01-09 19:36:26 +02:00
Stephen Halter 849ff2016c Use object.ReferenceEquals when comparing Actions in SocketInput 2016-01-08 15:40:07 -08:00
Stephen Halter b63dd40efb Protect SocketInput against concurrent consumption 2016-01-08 11:14:15 -08:00
Stephen Halter f3a39d98da Merge branch 'benaadams/socket-input' into dev 2016-01-08 11:12:43 -08:00
Henk Mollema b4b5f07a08 Detect mono using PlatformAbstractions 2016-01-07 00:48:36 +01:00
Henk Mollema db11368d26 Remove StandardsPoliceCompileModule usage
Just a test - this seems to fix the build
2016-01-07 00:35:51 +01:00
Henk Mollema e81c5adce2 Change #ifdefs 2016-01-07 00:35:50 +01:00
Henk Mollema 97a5149dd9 Remove dnx451 and dnxcore50 TFM's 2016-01-07 00:35:49 +01:00
Stephen Halter ffd950966e Merge branch 'benaadams/string-construct' into dev 2016-01-06 12:14:15 -08:00
Stephen Halter c4605bea20 Merge branch 'benaadams/pendingwrites' into dev 2016-01-05 12:57:23 -08:00
Stephen Halter b1a4e8cd1e Merge branch 'anderman/faster-unsafe' into dev 2016-01-05 12:33:14 -08:00
Stephen Halter 48233cd081 Merge branch 'benaadams/memorypool-seek' into dev 2016-01-05 12:09:04 -08:00
Ben Adams bc19a07291 ifdef comments on own line 2016-01-05 12:08:39 -08:00
sergey-tom 406d785b5e Fix typo
Looks like value from wrong variable is passed to Marshal.FreeHGlobal method. So IntPtr.Zero is passed to the method and actual pointer is lost.
2016-01-05 15:14:49 +01:00
Ben Adams e6bc0bc335 Only scheduleWrites on the threadpool 2016-01-05 11:42:41 +00:00
Ben Adams 480996433e Only queue write when not queued 2016-01-05 11:33:29 +00:00
Ben Adams 4c39800ea4 Seek perf extra
See https://github.com/aspnet/KestrelHttpServer/issues/541
2016-01-05 09:37:50 +00:00
Ben Adams 1eda5178de Seek perf + faster non vector path 2016-01-05 09:37:49 +00:00
Cesar Blum Silveira 7cc51959d9 Merge branch 'Anderman/TakeStartLine' into dev 2016-01-04 13:54:51 -08:00
Cesar Blum Silveira a53949c33e Add CORS headers to known headers (#389). 2016-01-04 12:26:21 -08:00
Stephen Halter 11e046e017 Merge branch 'benaadams/name-thread' into dev 2016-01-04 11:55:53 -08:00
Ben Adams cf77efc2ff Fast path pre-completed Input reads 2016-01-02 03:57:02 +00:00
Ben Adams afe944c053 Simplify SocketInput, remove locks, only use pooled blocks 2016-01-02 03:50:55 +00:00
David Fowler 4f8ec86b54 React to HttpAbstractions changes 2015-12-31 14:04:47 -08:00
Stephen Halter 5296d89337 Merge branch 'benaadams/messagebody.for' into dev 2015-12-30 17:38:48 -08:00
Stephen Halter 072f2b1a20 Merge branch 'benaadams/valuetask' into dev 2015-12-30 16:51:48 -08:00
Thom Kiesewetter 36e9e8759a Optimize TakeFirst Line with Known method and Version 2015-12-31 01:24:59 +01:00
Ben Adams ea3e64ab87 Loop unrolled direct string inject 2015-12-30 23:09:59 +00:00
Cesar Blum Silveira 6fbb9a0cfe Cleanup: private embedded types and readonly where appropriate (#187). 2015-12-30 12:47:13 -08:00
Ben Adams f7ac457b40 Use ValueTask 2015-12-30 19:41:55 +00:00
Ben Adams 5c58d48272 Name KestrelThreads
Helps with debugging, profiling
2015-12-30 13:06:27 +00:00
Cesar Blum Silveira acc80bcbc5 Merge branch 'benaadams/take' into dev 2015-12-29 11:46:24 -08:00
Thom Kiesewetter 8fdfef460a Faster unsafe pointers 2015-12-29 15:03:52 +01:00
Ben Adams 80dc284407 Checked length 2015-12-29 08:52:05 +00:00
Ben Adams 9019ac39ae Faster Take 2015-12-29 00:46:45 +00:00
Cesar Blum Silveira 0f389f01cb Merge branch 'benaadams/peek' into dev 2015-12-28 16:14:27 -08:00
Cesar Blum Silveira 1eeb0e380c Merge branch 'benaadams/generic-boxing' into dev 2015-12-28 15:46:30 -08:00
Ben Adams 982ab99b45 Make callback adapters readonly 2015-12-28 23:02:41 +00:00
Cesar Blum Silveira 67ed24896a Dispose socket on Accept() error. 2015-12-28 12:19:35 -08:00
Ben Adams eb8f860bd6 Avoid generic boxing in Post 2015-12-26 15:07:00 +00:00
Ben Adams f220a9f200 Faster Peek 2015-12-26 07:38:08 +00:00
Ben Adams 11b360b667 Faster MessageBody.For 2015-12-26 07:11:54 +00:00
Cesar Blum Silveira ada61f8181 Merge branch 'benaadams/readonly-static' into dev 2015-12-22 11:12:00 -08:00
moozzyk aaf84afaff Don't try calling `uname` on Windows 2015-12-21 10:25:48 -08:00
Ben Adams 02fa0c306d Jit readonly static optimization 2015-12-20 00:34:42 +00:00
John Luo bd10d507f8 Reacting to new Hosting API 2015-12-17 15:08:17 -08:00
Cesar Blum Silveira 717b355bfd Merge branch 'benaadams/horizontal-initalize' into dev 2015-12-17 14:37:48 -08:00
Ben Adams 7625f65e6c Faster MemoryPoolIterator2.CopyFrom 2015-12-17 11:32:01 +00:00
Ben Adams 186f6d0a05 Horizontal initialize repeat vectors once 2015-12-17 10:18:20 +00:00
Stephen Halter 5d6fdc5eb5 Merge branch 'benaadams/vector.dot' into dev 2015-12-16 17:39:40 -08:00
Stephen Halter 67a0165aec Merge branch 'benaadams/headers.clearfast' into dev 2015-12-16 15:48:01 -08:00
Ben Adams 559cd51255 Faster Headers.ClearFast 2015-12-16 22:23:33 +00:00
Ben Adams 9fa9c45eda ReuseStreams config and tests 2015-12-16 21:27:07 +00:00
Ben Adams 841ec73497 Prevent OnComplete modifying Streams 2015-12-16 20:51:45 +00:00
Ben Adams f5e45accac Amortize Stream Costs 2015-12-16 20:51:44 +00:00
Cesar Blum Silveira 349af50977 Pre-allocate standard method and version strings. 2015-12-16 10:47:59 -08:00
Ben Adams 4460cd3470 Don't use Vector<byte>.Dot 2015-12-16 16:24:45 +00:00
moozzyk 83cff16715 Changing the folder of ARM version of libuv to win7-arm
Depends on: https://github.com/aspnet/libuv-build/pull/4
Fixes: https://github.com/aspnet/Home/issues/1111
2015-12-15 10:37:29 -08:00
Ben Adams dc9f5c433b Update reason phrases to current
Update HTTP reason phrases to current values; are currently original
phrases.
2015-12-13 23:17:03 +00:00
Ben Adams 5665eba646 Pool WriteContexts additionally 2015-12-10 20:31:30 +00:00
Stephen Halter 3e42904096 Pool UvWriteReqs instead of SocketOutput.WriteContexts
- This allows all connections accepted by the same thread to share a pool
2015-12-10 20:31:30 +00:00
Ben Adams 992664e0dc Process cascaded work immediately
Without waiting for next libuv pass

Fix for potential regression in #363 due to bug fix.
2015-12-10 20:31:29 +00:00
Ben Adams 97d3340624 Resuse writes, initalize queues 2015-12-10 20:31:28 +00:00
Stephen Halter f9d70e601c Set error before changing state in SocketInput.AbortAwaiting
- This fixes a tight race where awaiting code might continue but not see
  the ODE that moved SocketInput into the completed state.
2015-12-10 12:21:20 -08:00
Stephen Halter f42bb02f24 Merge branch 'benaadams/server-crash' into dev 2015-12-10 12:18:13 -08:00
Ben Adams 9e8b07ecf8 Error concurrent reads gracefully 2015-12-10 16:25:06 +00:00
John Luo fd33475c05 Ignore null valued headers #429 2015-12-09 17:23:34 -08:00
Stephen Halter ebf642457d Merge branch 'khellang/kestrel-server-tests' into dev 2015-12-09 15:27:51 -08:00
Stephen Halter dd02a1c442 Fix compiler warnings 2015-12-08 17:31:57 -08:00
Kristian Hellang 6fbc3b8832 Added null check in KestrelServerInformation 2015-12-08 10:58:42 +01:00
Stephen Halter 90ece575f7 Merge branch 'khellang/configurable-thread-count' into dev 2015-12-08 00:13:56 -08:00
Stephen Halter de5dd4ca57 Merge branch 'benaadams/trim-streams' into dev 2015-12-08 00:11:29 -08:00
Stephen Halter d0dca75241 Remove count parameter from ISocketOutput.ProducingComplete
- This makes the calling code cleaner with a (hopefully) minimal pref impact
2015-12-08 00:09:24 -08:00
John Luo dff3a4f231 Reacting to verbose rename 2015-12-07 17:42:13 -08:00
Kristian Hellang 4c68807a05 Split out ProcessorThreadCount, added InvariantCulture to TryParse 2015-12-07 22:14:05 +01:00
Kristian Hellang 8d6a999bc3 Made NoDelay configurable 2015-12-07 22:09:04 +01:00
Kristian Hellang 12ee74c09c server.threadCount -> kestre.threadCount 2015-12-07 22:00:03 +01:00
Ben Adams 59bfb9ba10 Trim req/resp streams by a field each 2015-12-07 15:31:14 +00:00
Kristian Hellang b6b8ea3c38 Made ThreadCount configurable 2015-12-07 15:38:06 +01:00
Kristian Hellang 75cfe2c3bb Moved GetThreadCount into KestrelServerInformation 2015-12-07 15:38:05 +01:00
Stephen Halter 706ff04160 Merge branch 'benaadams/statemachines' into dev 2015-12-07 00:07:14 -08:00
Stephen Halter c451ce1863 Merge branch 'khellang/thread-count-init' into dev 2015-12-06 23:32:57 -08:00
Kristian Hellang 5eaa7e51c8 Initialize ThreadCount as early as possible
This will allow you to inspect the property
in the Configure method.

Closes #404
2015-12-04 20:55:37 +01:00
Ben Adams 35a06369d7 Pooled block always has pool 2015-12-04 08:23:12 +00:00
Stephen Halter 1c320d7a74 Merge branch 'benaadams/dont-use-default-buffer-size' into dev 2015-12-03 18:28:24 -08:00
Stephen Halter 737aac4cfc Merge branch 'benaadams/over-the-edge' into dev 2015-12-03 18:28:05 -08:00
Ben Adams 858e5ab3a2 Moar stopping power, Timeout is total timout 2015-12-03 23:37:54 +00:00
Ben Adams 1ca67695ed Use pooled memory for filtered stream 2015-12-03 19:17:40 +00:00
Ben Adams 9af9dea72c Smaller default buffer 2015-12-03 18:46:43 +00:00
Ben Adams c41b449681 Lighter & less async sMachines
Selected excerpts from "Value tasks + Less Async" #432
2015-12-03 11:10:20 +00:00
Ben Adams b1e8f0cdea Add IThreadPool interface 2015-12-03 10:37:52 +00:00
Ben Adams 850d2b0c7e Construct ThreadPoolActions in KestrelServer 2015-12-03 09:56:21 +00:00
Ben Adams 5ae9b3c383 Log user code threadpool continuation execptions 2015-12-03 09:56:21 +00:00
Stephen Halter 10490888d3 Merge branch 'tenor/speed-up-date' into dev 2015-12-02 19:52:48 -08:00
Stephen Halter b84d8dbd07 Minor style changes to tenor/speed-up-date
- Removed some code required to support sub-second timer intervals
2015-12-02 19:50:55 -08:00
Stephen Halter 7cbbf68e9d Merge branch 'benaadams/connectionfilter' into dev 2015-12-02 19:21:05 -08:00
Stephen Halter bb2c17a779 Merge branch 'benaadams/req-delegate' into dev 2015-12-02 19:17:16 -08:00
Ben Adams a55be21469 Empty buffer when null buffer 2015-12-03 02:10:36 +00:00
Ben Adams b7c60de98a Don't allocate request processing delegate 2015-12-02 15:23:09 +00:00
John Luo 168f4770f4 Reacting to new IServer and IHttpApplication design 2015-12-01 13:03:46 -08:00
Stephen Halter 0c33cad343 Merge branch 'benaadams/kestrel-thread-api' into dev 2015-12-01 12:20:41 -08:00
Sunny Ahuwanya 6251b8f3e6 Changed timer interval to 1 second. 2015-12-01 09:29:54 -05:00
Cesar Blum Silveira 921c338a40 Support PathBase (#214). 2015-11-30 16:42:02 -08:00
Ben Adams 9102c1bb92 Remove unused IMemoryPool 2015-11-29 10:13:14 +00:00
Ben Adams 2937fc3c98 OnConnection->OnConnectionAsync
Resolves  #433
2015-11-29 03:57:47 +00:00
Sunny Ahuwanya 67a0f2d420 Reverted ISystemClock to use DateTimeOffset 2015-11-28 21:27:51 -05:00
Sunny Ahuwanya 7f025a6bd4 Speed up DateHeaderValueManager
Replaced PumpTimer() method with StartTimer(), introduced StopTimer()
method which pauses timer when idle instead of disposing it,
ISystemClock returns DateTime instead of DateTimeOffset.
2015-11-28 20:15:17 -05:00
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