@@ -67,15 +67,15 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
6767 /// - amount: Amount to set the gauge to
6868 /// - labels: Labels to attach to the value
6969 ///
70- /// - Returns: The new value
71- @discardableResult
72- public func set( _ amount: NumType , _ labels: Labels ? = nil ) -> NumType {
70+ public func set( _ amount: NumType , _ labels: Labels ? = nil , _ done: @escaping ( NumType ) -> Void = { _ in } ) {
71+ prometheusQueue. async ( flags: . barrier) {
7372 if let labels = labels {
7473 self . metrics [ labels] = amount
75- return amount
74+ done ( amount)
7675 } else {
7776 self . value = amount
78- return self . value
77+ done ( self . value)
78+ }
7979 }
8080 }
8181
@@ -85,17 +85,17 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
8585 /// - amount: Amount to increment the Gauge with
8686 /// - labels: Labels to attach to the value
8787 ///
88- /// - Returns: The new value
89- @discardableResult
90- public func inc( _ amount: NumType , _ labels: Labels ? = nil ) -> NumType {
88+ public func inc( _ amount: NumType , _ labels: Labels ? = nil , _ done: @escaping ( NumType ) -> Void = { _ in } ) {
89+ prometheusQueue. async ( flags: . barrier) {
9190 if let labels = labels {
92- var val = self . metrics [ labels] ?? initialValue
91+ var val = self . metrics [ labels] ?? self . initialValue
9392 val += amount
9493 self . metrics [ labels] = val
95- return val
94+ done ( val)
9695 } else {
9796 self . value += amount
98- return self . value
97+ done ( self . value)
98+ }
9999 }
100100 }
101101
@@ -104,10 +104,10 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
104104 /// - Parameters:
105105 /// - labels: Labels to attach to the value
106106 ///
107- /// - Returns: The new value
108- @ discardableResult
109- public func inc ( _ labels : Labels ? = nil ) -> NumType {
110- return self . inc ( 1 , labels )
107+ public func inc ( _ labels : Labels ? = nil , _ done : @escaping ( NumType ) -> Void = { _ in } ) {
108+ self . inc ( 1 , labels ) {
109+ done ( $0 )
110+ }
111111 }
112112
113113 /// Decrements the Gauge
@@ -116,17 +116,17 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
116116 /// - amount: Amount to decrement the Gauge with
117117 /// - labels: Labels to attach to the value
118118 ///
119- /// - Returns: The new value
120- @discardableResult
121- public func dec( _ amount: NumType , _ labels: Labels ? = nil ) -> NumType {
119+ public func dec( _ amount: NumType , _ labels: Labels ? = nil , _ done: @escaping ( NumType ) -> Void = { _ in } ) {
120+ prometheusQueue. async ( flags: . barrier) {
122121 if let labels = labels {
123- var val = self . metrics [ labels] ?? initialValue
122+ var val = self . metrics [ labels] ?? self . initialValue
124123 val -= amount
125124 self . metrics [ labels] = val
126- return val
125+ done ( val)
127126 } else {
128127 self . value -= amount
129- return self . value
128+ done ( self . value)
129+ }
130130 }
131131 }
132132
@@ -135,10 +135,10 @@ public class Gauge<NumType: Numeric, Labels: MetricLabels>: Metric, PrometheusHa
135135 /// - Parameters:
136136 /// - labels: Labels to attach to the value
137137 ///
138- /// - Returns: The new value
139- @ discardableResult
140- public func dec ( _ labels : Labels ? = nil ) -> NumType {
141- return self . dec ( 1 , labels )
138+ public func dec ( _ labels : Labels ? = nil , _ done : @escaping ( NumType ) -> Void = { _ in } ) {
139+ self . dec ( 1 , labels ) {
140+ done ( $0 )
141+ }
142142 }
143143
144144 /// Gets the value of the Gauge
0 commit comments