OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / tendermint / abci / tests / benchmarks / parallel / parallel.go
1 package main
2
3 import (
4         "bufio"
5         "fmt"
6         "log"
7
8         "github.com/tendermint/abci/types"
9         cmn "github.com/tendermint/tmlibs/common"
10 )
11
12 func main() {
13
14         conn, err := cmn.Connect("unix://test.sock")
15         if err != nil {
16                 log.Fatal(err.Error())
17         }
18
19         // Read a bunch of responses
20         go func() {
21                 counter := 0
22                 for {
23                         var res = &types.Response{}
24                         err := types.ReadMessage(conn, res)
25                         if err != nil {
26                                 log.Fatal(err.Error())
27                         }
28                         counter++
29                         if counter%1000 == 0 {
30                                 fmt.Println("Read", counter)
31                         }
32                 }
33         }()
34
35         // Write a bunch of requests
36         counter := 0
37         for i := 0; ; i++ {
38                 var bufWriter = bufio.NewWriter(conn)
39                 var req = types.ToRequestEcho("foobar")
40
41                 err := types.WriteMessage(req, bufWriter)
42                 if err != nil {
43                         log.Fatal(err.Error())
44                 }
45                 err = bufWriter.Flush()
46                 if err != nil {
47                         log.Fatal(err.Error())
48                 }
49
50                 counter++
51                 if counter%1000 == 0 {
52                         fmt.Println("Write", counter)
53                 }
54         }
55 }