@@ -126,6 +126,7 @@ enum SpawnErrorKind {
126
126
IpcChannelClosed ( io:: Error ) ,
127
127
Cancelled ,
128
128
TimedOut ,
129
+ Consumed ,
129
130
}
130
131
131
132
impl SpawnError {
@@ -178,6 +179,10 @@ impl SpawnError {
178
179
kind : SpawnErrorKind :: TimedOut ,
179
180
}
180
181
}
182
+
183
+ pub ( crate ) fn new_consumed ( ) -> SpawnError {
184
+ SpawnError { kind : SpawnErrorKind :: Consumed }
185
+ }
181
186
}
182
187
183
188
impl std:: error:: Error for SpawnError {
@@ -188,6 +193,7 @@ impl std::error::Error for SpawnError {
188
193
SpawnErrorKind :: Panic ( _) => None ,
189
194
SpawnErrorKind :: Cancelled => None ,
190
195
SpawnErrorKind :: TimedOut => None ,
196
+ SpawnErrorKind :: Consumed => None ,
191
197
SpawnErrorKind :: IpcChannelClosed ( ref err) => Some ( err) ,
192
198
}
193
199
}
@@ -201,6 +207,7 @@ impl fmt::Display for SpawnError {
201
207
SpawnErrorKind :: Panic ( ref p) => write ! ( f, "process spawn error: panic: {}" , p) ,
202
208
SpawnErrorKind :: Cancelled => write ! ( f, "process spawn error: call cancelled" ) ,
203
209
SpawnErrorKind :: TimedOut => write ! ( f, "process spawn error: timed out" ) ,
210
+ SpawnErrorKind :: Consumed => write ! ( f, "process spawn error: result already consumed" ) ,
204
211
SpawnErrorKind :: IpcChannelClosed ( _) => write ! (
205
212
f,
206
213
"process spawn error: remote side closed (might have panicked on serialization)"
0 commit comments