@@ -12,7 +12,7 @@ const (
12
12
TRANSFER_CONNECTIONS = 8
13
13
INIT_AMOUNT = 10000
14
14
N_ITERATIONS = 10000
15
- N_ACCOUNTS = TRANSFER_CONNECTIONS //100000
15
+ N_ACCOUNTS = 100000 //TRANSFER_CONNECTIONS
16
16
ISOLATION_LEVEL = "repeatable read"
17
17
//ISOLATION_LEVEL = "read committed"
18
18
)
@@ -70,7 +70,7 @@ func prepare_db() {
70
70
exec (conn2 , "commit" )
71
71
}
72
72
73
- func progress (total int , cCommits chan int , cAborts chan int ) {
73
+ func progress (total int , cCommits chan int , cAborts chan int , wg * sync. WaitGroup ) {
74
74
commits := 0
75
75
aborts := 0
76
76
start := time .Now ()
@@ -86,6 +86,8 @@ func progress(total int, cCommits chan int, cAborts chan int) {
86
86
start = time .Now ()
87
87
}
88
88
}
89
+ fmt .Printf ("Done: %d commits, %d aborts\n " , commits , aborts )
90
+ wg .Done ()
89
91
}
90
92
91
93
func transfer (id int , cCommits chan int , cAborts chan int , wg * sync.WaitGroup ) {
@@ -164,12 +166,14 @@ func inspect(wg *sync.WaitGroup) {
164
166
func main () {
165
167
var transferWg sync.WaitGroup
166
168
var inspectWg sync.WaitGroup
169
+ var progressWg sync.WaitGroup
167
170
168
171
prepare_db ()
169
172
170
173
cCommits := make (chan int )
171
174
cAborts := make (chan int )
172
- go progress (TRANSFER_CONNECTIONS * N_ITERATIONS , cCommits , cAborts )
175
+ progressWg .Add (1 )
176
+ go progress (TRANSFER_CONNECTIONS * N_ITERATIONS , cCommits , cAborts , & progressWg )
173
177
174
178
transferWg .Add (TRANSFER_CONNECTIONS )
175
179
for i := 0 ; i < TRANSFER_CONNECTIONS ; i ++ {
@@ -183,7 +187,8 @@ func main() {
183
187
running = false
184
188
inspectWg .Wait ()
185
189
186
- fmt .Printf ("done\n " )
190
+ close (cCommits )
191
+ progressWg .Wait ()
187
192
}
188
193
189
194
func exec (conn * pgx.Conn , stmt string , arguments ... interface {}) {
0 commit comments