Commit graph

12002 commits

Author SHA1 Message Date
Endre Sándor Varga
1ec065b0cd Factored out common manager code and SocketOptions 2013-02-05 11:48:47 +01:00
Endre Sándor Varga
946fb0eec4 Removed WithByteBuffer and friends 2013-02-04 16:24:34 +01:00
Endre Sándor Varga
58ab585844 Various fixes to tests 2013-02-04 11:21:04 +01:00
Endre Sándor Varga
8b4a3b0b92 Another LIMBO commit, but TCP now uses the unified selector 2013-02-01 13:11:17 +01:00
Endre Sándor Varga
ad60b155c6 Temporary LIMBO commit, but UDP now uses the unified selector 2013-02-01 12:38:13 +01:00
Endre Sándor Varga
824158a698 First iteration of Fire-and-Forget style UDP IO 2013-01-31 13:25:40 +01:00
Roland
389768b488 clean up test output and help aggregation to pass on my Mac 2013-01-30 11:28:47 +01:00
Roland
a964843843 move akka-io project into akka-actor’s akka.io package 2013-01-30 09:30:59 +01:00
Roland Kuhn
842ac74056 Merge pull request #1059 from spray/wip-IO-ReduceReceivedMsgs
aggregate received data as long as there's data in kernel buffers or 're...
2013-01-28 05:26:03 -08:00
Johannes Rudolph
c8f8b55f01 use config.getBytes where appropriate 2013-01-26 10:55:39 +01:00
Johannes Rudolph
77675383f4 fix: skip selector when read is split up just because of ReceivedMessageSizeLimit 2013-01-26 10:44:44 +01:00
Johannes Rudolph
f6fb147afc aggregate received data as long as there's data in kernel buffers or 'received-message-size-limit' is reached, see #2886 2013-01-26 10:29:28 +01:00
Roland Kuhn
16945b743c Merge pull request #1066 from jrudolph/wip-IO-fix-close-race-condition
fix checking for connection close in TcpConnectionSpec
2013-01-25 03:41:29 -08:00
Johannes Rudolph
e994267bf6 fix checking for connection close in TcpConnectionSpec
The fix was to only rely on actually selecting not also on checking
key.readyOps since that isn't necessarily reliable without selecting.
2013-01-25 10:06:49 +01:00
Roland Kuhn
93fc9f1d6f Merge pull request #1030 from spray/wip-IO
New IO: first complete implementation
2013-01-23 08:34:11 -08:00
Mathias
5883c40ce8 Add TCP message protocol diagrams 2013-01-23 15:40:07 +01:00
Johannes Rudolph
3e78247cc8 when the connection is established optimistically try reading before registering ReadInterest 2013-01-23 15:28:14 +01:00
Mathias
f138dbd6b4 Add missing copyright header, smaller cleanups 2013-01-23 15:19:03 +01:00
Mathias
8282ac9896 Add support for 'unlimited' max-channels 2013-01-23 14:43:07 +01:00
Mathias
385fd322c9 Rename ErrorClose event to ErrorClosed 2013-01-23 11:47:12 +01:00
Mathias
7761b00122 "unseal" Tcp.Event trait 2013-01-23 11:25:19 +01:00
Johannes Rudolph
0a7c793316 fix: make sure buffer is released in any case, also after not acked writes and when killed 2013-01-22 17:32:46 +01:00
Mathias
c61414f28f Fix TcpListener not distributing incoming connections across all selectors 2013-01-22 16:23:11 +01:00
Johannes Rudolph
64d832377b prevent connection leak when temporaryServerAddress throws 2013-01-22 16:05:03 +01:00
Johannes Rudolph
fccf596649 Revert "Change socket options type from immutable.Traversable to Traversable"
This reverts commit ba922fa2d7.

Conflicts:
	akka-io/src/main/scala/akka/io/Tcp.scala
	akka-io/src/main/scala/akka/io/TcpIncomingConnection.scala
	akka-io/src/main/scala/akka/io/TcpListener.scala
	akka-io/src/main/scala/akka/io/TcpOutgoingConnection.scala
2013-01-22 16:03:22 +01:00
Johannes Rudolph
c6265843b3 remove explicit selector field in TcpConnection + TcpListener 2013-01-22 15:57:44 +01:00
Mathias
4e700b661a Add missing case to CapacityLimitSpec 2013-01-22 14:15:59 +01:00
Mathias
570b02f569 Decrease visibility of internals to private[io], clean up imports 2013-01-22 14:15:51 +01:00
Mathias
79accb810e Cleanup, small fixes and more and better tests 2013-01-22 13:57:49 +01:00
Mathias
ba922fa2d7 Change socket options type from immutable.Traversable to Traversable
The problem with `immutable.Traversable` is that it doesn't allow the use of `Seq.apply` for socket options, since `Seq` is aliased to `scala.collection.Seq` and not `scala.collection.immutable.Seq` in `package object scala`. Even though technically nicer `immutable.Traversable` therefore hinders usability of the API, for a benefit that we don't consider worth the cost.

Conflicts:
	akka-io/src/main/scala/akka/io/TcpConnection.scala
2013-01-22 12:52:34 +01:00
Johannes Rudolph
a53848edfa properly cleanup selector in tests 2013-01-22 11:41:40 +01:00
Johannes Rudolph
3687697aed use proper selection strategy to try to improve test stability 2013-01-22 11:35:15 +01:00
Johannes Rudolph
e853a1d2ae fix race condition when trying to assert closed channel on the server side 2013-01-21 18:26:56 +01:00
Johannes Rudolph
54c3d77db2 add more integration tests 2013-01-21 17:41:51 +01:00
Johannes Rudolph
6d5458dfeb further improve pullFromServerSide stability 2013-01-21 17:26:52 +01:00
Johannes Rudolph
3d34f57c5b improve stability of tests, pullFromServerSide now uses real selector to check for conditions 2013-01-21 17:05:44 +01:00
Johannes Rudolph
b4baf66442 make asserting on received messages more resilient 2013-01-21 16:22:31 +01:00
Johannes Rudolph
91548c7375 Revert "in DirectByteBufferPool keep buffers by soft reference" 2013-01-21 15:52:19 +01:00
Johannes Rudolph
7c1fe80279 remove commented code 2013-01-21 14:55:02 +01:00
Johannes Rudolph
9c9508d76f improve DirectByteBufferPool and some smaller fixes
* dispatch Closed events to the sender of the close command as well
 * DirectByteBufferPool changes:

     * hide behind BufferPool interface
     * only return buffers of the configured size
     * reduce work to be done while locked
     * use Array-based stack to store free buffers instead of linked lists
     * keep buffers by soft reference
2013-01-21 14:45:19 +01:00
Mathias
2f54a5b4d2 more tests, smaller improvements 2013-01-18 13:20:17 +01:00
Mathias
7384e07d9b improvements from the first round of feedback, see #2885 and #2887 2013-01-17 17:31:08 +01:00
Johannes Rudolph
9bcca4003a in tests make sure to get a server address that is highly probable to be currently unbound 2013-01-17 15:07:00 +01:00
Johannes Rudolph
7d89aefb63 use a direct buffer pool for buffers needed for channel.read/write
The major advantage of this approach is that a Write is only copied once
into its direct buffer and this direct buffer is kept until it is written
fully.
2013-01-17 14:46:21 +01:00
Johannes Rudolph
18aecef4bd fix issues discussed in the pull request 2013-01-17 14:45:50 +01:00
Johannes Rudolph
e11c3fe6bb fix assertion error typo 2013-01-16 17:08:42 +01:00
Johannes Rudolph
e22c80655d refactor tests to reuse common connection setup 2013-01-16 17:08:42 +01:00
Mathias
27d111b1f5 tcp selector and listener actors, extension of tcp manager actor, see #2885 and #2887 2013-01-16 15:24:48 +01:00
Johannes Rudolph
be9abae1e3 tcp connection actors, see #2886 2013-01-16 15:11:35 +01:00
drewhk
284e64f7c5 Merge pull request #1017 from drewhk/wip-2887-tcpmanager-drewhk
Created top level manager for TCP based IO #2887
2013-01-14 00:35:44 -08:00