@@ -90,9 +90,8 @@ impl ActiveSocketData {
90
90
// Put the buffer back and try again later.
91
91
self . send_queue . push_front ( Outgoing { addr, buffer, result} ) ;
92
92
} else {
93
- let cause =format ! ( "failed to send on socket: {:?}" , errno) ;
94
- error ! ( "poll_send(): {}" , cause) ;
95
- result. set ( Some ( Err ( Fail :: new ( errno, & cause) ) ) ) ;
93
+ error ! ( "poll_send(): failed on socket: {:?}" , errno) ;
94
+ result. set ( Some ( Err ( Fail :: new ( errno, "send failed on socket" ) ) ) ) ;
96
95
}
97
96
} ,
98
97
}
@@ -126,9 +125,8 @@ impl ActiveSocketData {
126
125
Err ( e) =>{
127
126
let errno =get_libc_err ( e) ;
128
127
if !DemiRuntime :: should_retry ( errno) {
129
- let cause =format ! ( "failed to receive on socket: {:?}" , errno) ;
130
- error ! ( "poll_recv(): {}" , cause) ;
131
- self . recv_queue . push ( Err ( Fail :: new ( errno, & cause) ) ) ;
128
+ error ! ( "poll_recv(): failed on socket: {:?}" , errno) ;
129
+ self . recv_queue . push ( Err ( Fail :: new ( errno, "receive failed on socket" ) ) ) ;
132
130
}
133
131
} ,
134
132
}
@@ -153,21 +151,22 @@ impl ActiveSocketData {
153
151
}
154
152
}
155
153
156
- ///Pops data from the socket. Blocks until some data is found but does not wait until the buf has reached [size].
154
+ /// Blocks until some data is found but does not wait until the buf has reached [size].
157
155
pub async fn pop (
158
156
& mut self ,
159
157
size : usize ,
160
158
timeout : Option < Duration > ,
161
159
) ->Result < ( Option < SocketAddr > , DemiBuffer ) , Fail > {
162
160
let ( addr, mut buffer) =self . recv_queue . pop ( timeout) . await ??;
163
- // Figure out how much data we got.
164
161
let bytes_read =min ( buffer. len ( ) , size) ;
162
+
165
163
// Trim the buffer and leave for next read if we got more than expected.
166
164
if let Ok ( remainder) = buffer. split_back ( bytes_read) {
167
165
if !remainder. is_empty ( ) {
168
- self . push_front ( remainder, addr. clone ( ) ) ;
166
+ self . push_front ( remainder, addr) ;
169
167
}
170
168
}
169
+
171
170
Ok ( ( addr, buffer) )
172
171
}
173
172