Skip to content

Commit

Permalink
All thread safe? 🤔
Browse files Browse the repository at this point in the history
  • Loading branch information
MrLotU committed Jan 2, 2019
1 parent a8e35e9 commit 32b1570
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 37 deletions.
24 changes: 12 additions & 12 deletions Sources/Prometheus/MetricTypes/Counter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public class Counter<NumType: Numeric, Labels: MetricLabels>: Metric, Prometheus
output.append("# HELP \(self.name) \(help)")
}
output.append("# TYPE \(self.name) \(self._type)")

output.append("\(self.name) \(self.value)")

self.metrics.forEach { (labels, value) in
Expand All @@ -67,17 +67,17 @@ public class Counter<NumType: Numeric, Labels: MetricLabels>: Metric, Prometheus
/// - amount: Amount to increment the counter with
/// - labels: Labels to attach to the value
///
/// - Returns: The new value
@discardableResult
public func inc(_ amount: NumType = 1, _ labels: Labels? = nil) -> NumType {
if let labels = labels {
var val = self.metrics[labels] ?? initialValue
val += amount
self.metrics[labels] = val
return val
} else {
self.value += amount
return self.value
public func inc(_ amount: NumType = 1, _ labels: Labels? = nil, _ done: @escaping (NumType) -> Void = { _ in }) {
prometheusQueue.async(flags: .barrier) {
if let labels = labels {
var val = self.metrics[labels] ?? self.initialValue
val += amount
self.metrics[labels] = val
done(val)
} else {
self.value += amount
done(self.value)
}
}
}

Expand Down
50 changes: 25 additions & 25 deletions Sources/Prometheus/MetricTypes/Gauge.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,15 +67,15 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
/// - amount: Amount to set the gauge to
/// - labels: Labels to attach to the value
///
/// - Returns: The new value
@discardableResult
public func set(_ amount: NumType, _ labels: Labels? = nil) -> NumType {
public func set(_ amount: NumType, _ labels: Labels? = nil, _ done: @escaping (NumType) -> Void = { _ in }) {
prometheusQueue.async(flags: .barrier) {
if let labels = labels {
self.metrics[labels] = amount
return amount
done(amount)
} else {
self.value = amount
return self.value
done(self.value)
}
}
}

Expand All @@ -85,17 +85,17 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
/// - amount: Amount to increment the Gauge with
/// - labels: Labels to attach to the value
///
/// - Returns: The new value
@discardableResult
public func inc(_ amount: NumType, _ labels: Labels? = nil) -> NumType {
public func inc(_ amount: NumType, _ labels: Labels? = nil, _ done: @escaping (NumType) -> Void = { _ in }) {
prometheusQueue.async(flags: .barrier) {
if let labels = labels {
var val = self.metrics[labels] ?? initialValue
var val = self.metrics[labels] ?? self.initialValue
val += amount
self.metrics[labels] = val
return val
done(val)
} else {
self.value += amount
return self.value
done(self.value)
}
}
}

Expand All @@ -104,10 +104,10 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
/// - Parameters:
/// - labels: Labels to attach to the value
///
/// - Returns: The new value
@discardableResult
public func inc(_ labels: Labels? = nil) -> NumType {
return self.inc(1, labels)
public func inc(_ labels: Labels? = nil, _ done: @escaping (NumType) -> Void = { _ in }) {
self.inc(1, labels) {
done($0)
}
}

/// Decrements the Gauge
Expand All @@ -116,17 +116,17 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
/// - amount: Amount to decrement the Gauge with
/// - labels: Labels to attach to the value
///
/// - Returns: The new value
@discardableResult
public func dec(_ amount: NumType, _ labels: Labels? = nil) -> NumType {
public func dec(_ amount: NumType, _ labels: Labels? = nil, _ done: @escaping (NumType) -> Void = { _ in }) {
prometheusQueue.async(flags: .barrier) {
if let labels = labels {
var val = self.metrics[labels] ?? initialValue
var val = self.metrics[labels] ?? self.initialValue
val -= amount
self.metrics[labels] = val
return val
done(val)
} else {
self.value -= amount
return self.value
done(self.value)
}
}
}

Expand All @@ -135,10 +135,10 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
/// - Parameters:
/// - labels: Labels to attach to the value
///
/// - Returns: The new value
@discardableResult
public func dec(_ labels: Labels? = nil) -> NumType {
return self.dec(1, labels)
public func dec(_ labels: Labels? = nil, _ done: @escaping (NumType) -> Void = { _ in }) {
self.dec(1, labels) {
done($0)
}
}

/// Gets the value of the Gauge
Expand Down

0 comments on commit 32b1570

Please sign in to comment.