run method
Run the worker loop. The returned Future doesn't complete until
connection#readRequest returns null.
Implementation
@override
Future run() async {
while (true) {
late WorkResponse response;
try {
var request = await connection.readRequest();
if (request == null) break;
var printMessages = StringBuffer();
response = await runZoned(
() => performRequest(request),
zoneSpecification: ZoneSpecification(
print: (self, parent, zone, message) {
printMessages.writeln();
printMessages.write(message);
},
),
);
if (printMessages.isNotEmpty) {
response.output = '${response.output}$printMessages';
}
} catch (e, s) {
response = WorkResponse(exitCode: EXIT_CODE_ERROR, output: '$e\n$s');
}
connection.writeResponse(response);
}
}