spanSync<T> static method

T spanSync<T>(
  1. String channel,
  2. Map<String, Object?> payload,
  3. T body()
)

span for synchronous work — a sqlite call should not become async just to be observed.

Implementation

static T spanSync<T>(
  String channel,
  Map<String, Object?> payload,
  T Function() body,
) {
  var watch = Stopwatch()..start();
  Object? error;
  try {
    return body();
  } catch (e) {
    error = e;
    rethrow;
  } finally {
    _spanEvent(channel, payload, watch, error);
  }
}