Skip to content

Commit 696cdb9

Browse files
committed
rpc: actually use size hint in new_outgoing_message
1 parent cd5bf1f commit 696cdb9

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

capnp-rpc/src/rpc.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ impl<VatId> Drop for QuestionRef<VatId> {
209209
match &mut questions.slots[self.id as usize] {
210210
Some(q) => {
211211
if let Ok(ref mut c) = *self.connection_state.connection.borrow_mut() {
212-
let mut message = c.new_outgoing_message(100); // XXX size hint
212+
let mut message = c.new_outgoing_message(5);
213213
{
214214
let root: message::Builder = message.get_body().unwrap().init_as();
215215
let mut builder = root.init_finish();
@@ -629,7 +629,7 @@ impl<VatId> ConnectionState<VatId> {
629629
}
630630
match *state.connection.borrow_mut() {
631631
Ok(ref mut c) => {
632-
let mut message = c.new_outgoing_message(100); // TODO estimate size
632+
let mut message = c.new_outgoing_message(5);
633633
{
634634
let mut builder = message
635635
.get_body()
@@ -739,7 +739,7 @@ impl<VatId> ConnectionState<VatId> {
739739
return Ok(());
740740
}
741741

742-
let mut response = connection_state.new_outgoing_message(50)?; // XXX size hint
742+
let mut response = connection_state.new_outgoing_message(10)?;
743743

744744
let result_exports = {
745745
let mut ret = response
@@ -1761,7 +1761,7 @@ where
17611761
_size_hint: Option<::capnp::MessageSize>,
17621762
target: Client<VatId>,
17631763
) -> ::capnp::Result<Self> {
1764-
let message = connection_state.new_outgoing_message(100)?;
1764+
let message = connection_state.new_outgoing_message(1024)?;
17651765
Ok(Self {
17661766
connection_state,
17671767
target,
@@ -2392,7 +2392,7 @@ impl ResultsDone {
23922392
if let Ok(connection) =
23932393
connection_state.connection.borrow_mut().as_mut()
23942394
{
2395-
let mut message = connection.new_outgoing_message(50); // XXX size hint
2395+
let mut message = connection.new_outgoing_message(10);
23962396
{
23972397
let root: message::Builder =
23982398
message.get_body()?.get_as()?;
@@ -2627,7 +2627,7 @@ impl<VatId> Drop for ImportClient<VatId> {
26272627
// Send a message releasing our remote references.
26282628
let mut tmp = connection_state.connection.borrow_mut();
26292629
if let (true, Ok(c)) = (self.remote_ref_count > 0, tmp.as_mut()) {
2630-
let mut message = c.new_outgoing_message(50); // XXX size hint
2630+
let mut message = c.new_outgoing_message(10);
26312631
{
26322632
let root: message::Builder = message.get_body().unwrap().init_as();
26332633
let mut release = root.init_release();

capnp-rpc/src/twoparty.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,14 @@ where
149149

150150
fn new_outgoing_message(
151151
&mut self,
152-
_first_segment_word_size: u32,
152+
first_segment_word_size: u32,
153153
) -> Box<dyn crate::OutgoingMessage> {
154+
let message = ::capnp::message::Builder::new(
155+
::capnp::message::HeapAllocator::new()
156+
.first_segment_words(first_segment_word_size as u32),
157+
);
154158
Box::new(OutgoingMessage {
155-
message: ::capnp::message::Builder::new_default(),
159+
message,
156160
sender: self.inner.borrow().sender.clone(),
157161
})
158162
}

0 commit comments

Comments
 (0)