Commit Graph

18 Commits

Author SHA1 Message Date
Chris Vest
f0a57ed023
Merge pull request #72 from netty/integration
Implement BufferIntegratable for Nio- and UnsafeBuffer
2021-05-31 15:18:39 +02:00
Chris Vest
a48a12794d Make release(int) methods handle errors better
Exception types and error messages are now unified and more descriptive.
2021-05-31 15:06:48 +02:00
Chris Vest
db7ac99699 Fix more review comments 2021-05-28 17:10:46 +02:00
Chris Vest
f3c86e3fbc
Merge pull request #71 from kashike/fix/typos-1
chore: fix a few typos
2021-05-28 16:29:38 +02:00
Chris Vest
53a8d71c64 Fix numerous review comments
- Mostly javadocs have been fixed or added.
- A couple of small code changes in ByteBufAdaptor to better cope with unlikely exceptions.
2021-05-28 16:23:35 +02:00
Riley Park
e1a983fcb6
chore: fix a few typos 2021-05-28 06:58:22 -07:00
Riley Park
f400b1ff15
feat: Re-use a NOOP tracer 2021-05-28 06:56:42 -07:00
Chris Vest
af119de4a7 Implement BufferIntegratable for Nio- and UnsafeBuffer 2021-05-28 14:08:55 +02:00
Chris Vest
b2bf0029be Fix adaptor tests 2021-05-28 10:58:37 +02:00
Chris Vest
050db15e07 Fix bug where copy with over-sized length threw a wrong exception 2021-05-27 17:41:40 +02:00
Chris Vest
05d76c27c1 Hide isOwned, countBorrows, and acquire from the public API, even on CompositeBuffer 2021-05-27 17:34:40 +02:00
Chris Vest
1c25fa88b7 Fix test failures coming from removal of slice and introduction of copy. 2021-05-27 17:06:30 +02:00
Chris Vest
707e5e2afb Remove the slice methods, add copy methods 2021-05-27 14:07:31 +02:00
Chris Vest
f0ee2e1467 Remove acquire from the public API
This is a step toward effectively eliminating reference counting.
Reference counting is only needed when the memory in buffers can be shared.
If we remove all forms of sharing, then the buffers would be in an owned state at all times.
Then we would no longer need to worry about the state of the buffers before calling, e.g. `ensureWritable` and methods like that.

Just removing `acquire` is not enough; we also need to remove the `slice` method.
In this commit we are, however, starting with `acquire` because doing so requires rearranging the type hierarchy and the generics we have in play.
This was not an easy exercise, but for the purpose of record keeping, it's useful to have that work separate from the work of removing `slice`.
2021-05-26 17:19:26 +02:00
Chris Vest
9dc1d533e3 Fix remaining tests and make the build work on Java 11 2021-05-21 17:28:07 +02:00
Chris Vest
1c3b27f9e0 Further reduce memory overhead of PooledBufferAllocator
… by lazily allocating PoolSubpages inside of the PoolArenas.
By default, a pooled allocator creates 32 arenas, and each arena, by default, makes room for 39 PoolSubpage size classes, which all told is 1.248 objects that serve no purpose other than as headers and locks for linked lists.
Each of these objects is at least 81 bytes, plus whatever the JVM adds on top.
This might not sound like much, but in our testing we'll be creating many thousands of allocators, and then it really adds up.
2021-05-21 15:37:59 +02:00
Chris Vest
e6f867cc5f Remove some deprecated methods 2021-05-21 15:03:48 +02:00
Chris Vest
1143223407 First draft of splitting the repo into multiple modules and allowing builds with Java 11 2021-05-21 14:04:23 +02:00