@@ -135,6 +135,7 @@ pub trait ExecutionStrategy {
135
135
input : Buffer < u8 > ,
136
136
run_client : extern "C" fn ( Bridge < ' _ > , D ) -> Buffer < u8 > ,
137
137
client_data : D ,
138
+ force_show_panics : bool ,
138
139
) -> Buffer < u8 > ;
139
140
}
140
141
@@ -147,10 +148,14 @@ impl ExecutionStrategy for SameThread {
147
148
input : Buffer < u8 > ,
148
149
run_client : extern "C" fn ( Bridge < ' _ > , D ) -> Buffer < u8 > ,
149
150
client_data : D ,
151
+ force_show_panics : bool ,
150
152
) -> Buffer < u8 > {
151
153
let mut dispatch = |b| dispatcher. dispatch ( b) ;
152
154
153
- run_client ( Bridge { cached_buffer : input, dispatch : ( & mut dispatch) . into ( ) } , client_data)
155
+ run_client (
156
+ Bridge { cached_buffer : input, dispatch : ( & mut dispatch) . into ( ) , force_show_panics } ,
157
+ client_data,
158
+ )
154
159
}
155
160
}
156
161
@@ -166,6 +171,7 @@ impl ExecutionStrategy for CrossThread1 {
166
171
input : Buffer < u8 > ,
167
172
run_client : extern "C" fn ( Bridge < ' _ > , D ) -> Buffer < u8 > ,
168
173
client_data : D ,
174
+ force_show_panics : bool ,
169
175
) -> Buffer < u8 > {
170
176
use std:: sync:: mpsc:: channel;
171
177
@@ -179,7 +185,11 @@ impl ExecutionStrategy for CrossThread1 {
179
185
} ;
180
186
181
187
run_client (
182
- Bridge { cached_buffer : input, dispatch : ( & mut dispatch) . into ( ) } ,
188
+ Bridge {
189
+ cached_buffer : input,
190
+ dispatch : ( & mut dispatch) . into ( ) ,
191
+ force_show_panics,
192
+ } ,
183
193
client_data,
184
194
)
185
195
} ) ;
@@ -201,6 +211,7 @@ impl ExecutionStrategy for CrossThread2 {
201
211
input : Buffer < u8 > ,
202
212
run_client : extern "C" fn ( Bridge < ' _ > , D ) -> Buffer < u8 > ,
203
213
client_data : D ,
214
+ force_show_panics : bool ,
204
215
) -> Buffer < u8 > {
205
216
use std:: sync:: { Arc , Mutex } ;
206
217
@@ -226,7 +237,11 @@ impl ExecutionStrategy for CrossThread2 {
226
237
} ;
227
238
228
239
let r = run_client (
229
- Bridge { cached_buffer : input, dispatch : ( & mut dispatch) . into ( ) } ,
240
+ Bridge {
241
+ cached_buffer : input,
242
+ dispatch : ( & mut dispatch) . into ( ) ,
243
+ force_show_panics,
244
+ } ,
230
245
client_data,
231
246
) ;
232
247
@@ -265,14 +280,21 @@ fn run_server<
265
280
input : I ,
266
281
run_client : extern "C" fn ( Bridge < ' _ > , D ) -> Buffer < u8 > ,
267
282
client_data : D ,
283
+ force_show_panics : bool ,
268
284
) -> Result < O , PanicMessage > {
269
285
let mut dispatcher =
270
286
Dispatcher { handle_store : HandleStore :: new ( handle_counters) , server : MarkedTypes ( server) } ;
271
287
272
288
let mut b = Buffer :: new ( ) ;
273
289
input. encode ( & mut b, & mut dispatcher. handle_store ) ;
274
290
275
- b = strategy. run_bridge_and_client ( & mut dispatcher, b, run_client, client_data) ;
291
+ b = strategy. run_bridge_and_client (
292
+ & mut dispatcher,
293
+ b,
294
+ run_client,
295
+ client_data,
296
+ force_show_panics,
297
+ ) ;
276
298
277
299
Result :: decode ( & mut & b[ ..] , & mut dispatcher. handle_store )
278
300
}
@@ -283,6 +305,7 @@ impl client::Client<fn(crate::TokenStream) -> crate::TokenStream> {
283
305
strategy : & impl ExecutionStrategy ,
284
306
server : S ,
285
307
input : S :: TokenStream ,
308
+ force_show_panics : bool ,
286
309
) -> Result < S :: TokenStream , PanicMessage > {
287
310
let client:: Client { get_handle_counters, run, f } = * self ;
288
311
run_server (
@@ -292,6 +315,7 @@ impl client::Client<fn(crate::TokenStream) -> crate::TokenStream> {
292
315
<MarkedTypes < S > as Types >:: TokenStream :: mark ( input) ,
293
316
run,
294
317
f,
318
+ force_show_panics,
295
319
)
296
320
. map ( <MarkedTypes < S > as Types >:: TokenStream :: unmark)
297
321
}
@@ -304,6 +328,7 @@ impl client::Client<fn(crate::TokenStream, crate::TokenStream) -> crate::TokenSt
304
328
server : S ,
305
329
input : S :: TokenStream ,
306
330
input2 : S :: TokenStream ,
331
+ force_show_panics : bool ,
307
332
) -> Result < S :: TokenStream , PanicMessage > {
308
333
let client:: Client { get_handle_counters, run, f } = * self ;
309
334
run_server (
@@ -316,6 +341,7 @@ impl client::Client<fn(crate::TokenStream, crate::TokenStream) -> crate::TokenSt
316
341
) ,
317
342
run,
318
343
f,
344
+ force_show_panics,
319
345
)
320
346
. map ( <MarkedTypes < S > as Types >:: TokenStream :: unmark)
321
347
}
0 commit comments