Future run()

in lib/src/worker/async_worker_loop.dart [28:52]


  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);
    }
  }