From fd2bb015c721c2db447272b4e9cd47fec353c6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Sat, 13 Oct 2018 11:09:33 +0200 Subject: [PATCH] fix metrics logic --- src/isolate.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/isolate.rs b/src/isolate.rs index 0adfdb8845..4d6f7cdfc8 100644 --- a/src/isolate.rs +++ b/src/isolate.rs @@ -171,7 +171,6 @@ impl Isolate { } pub fn respond(&mut self, req_id: i32, buf: Buf) { - self.state.metrics_op_completed(buf.len() as u64); // TODO(zero-copy) Use Buf::leak(buf) to leak the heap allocated buf. And // don't do the memcpy in ImportBuf() (in libdeno/binding.cc) unsafe { @@ -189,7 +188,9 @@ impl Isolate { // completing. self.ntasks_decrement(); // Call into JS with the buf. + let buf_size = buf.len() as u64; self.respond(req_id, buf); + self.state.metrics_op_completed(buf_size) } fn timeout(&mut self) { @@ -307,6 +308,7 @@ extern "C" fn pre_dispatch( if buf_size != 0 { // Set the synchronous response, the value returned from isolate.send(). isolate.respond(req_id, buf); + isolate.state.metrics_op_completed(buf_size as u64); } } else { // Execute op asynchronously.