File tree Expand file tree Collapse file tree 1 file changed +9
-10
lines changed Expand file tree Collapse file tree 1 file changed +9
-10
lines changed Original file line number Diff line number Diff line change @@ -27,12 +27,8 @@ class Binding {
27
27
}
28
28
29
29
static void callBridge (IsolateArguments args) async {
30
- try {
31
- var result = await Binding ().call (args.name, args.payload);
32
- args.port.send (result);
33
- } catch (e) {
34
- args.port.send (e.toString ());
35
- }
30
+ var result = await Binding ().call (args.name, args.payload);
31
+ args.port.send (result);
36
32
}
37
33
38
34
Future <Uint8List > callAsync (String name, Uint8List payload) async {
@@ -43,16 +39,19 @@ class Binding {
43
39
final isolate = await Isolate .spawn (
44
40
callBridge,
45
41
args,
46
- errorsAreFatal: true ,
42
+ errorsAreFatal: false ,
47
43
debugName: '${_libraryName }_isolate' ,
44
+ onError: port.sendPort,
48
45
);
49
46
50
47
port.listen (
51
48
(message) async {
52
- if (message is String ) {
53
- completer.completeError (message);
54
- } else {
49
+ if (message is Uint8List ) {
55
50
completer.complete (message);
51
+ } else if (message is List ) {
52
+ completer.completeError (message.firstOrNull ?? "internal error" );
53
+ } else {
54
+ completer.completeError (message ?? "spawn error" );
56
55
}
57
56
port.close ();
58
57
},
You can’t perform that action at this time.
0 commit comments