Skip to content

Commit cb17a9b

Browse files
committed
support parameter workers
Signed-off-by: FingerLeader <[email protected]>
1 parent be1e9bb commit cb17a9b

File tree

1 file changed

+26
-13
lines changed

1 file changed

+26
-13
lines changed

main.go

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"flag"
5+
"fmt"
56
"os"
67
"syscall"
78
"time"
@@ -12,11 +13,13 @@ import (
1213
var (
1314
memSize string
1415
growthTime string
16+
workers int
1517
)
1618

1719
func init() {
1820
flag.StringVar(&memSize, "size", "0KB", "")
1921
flag.StringVar(&growthTime, "time", "0s", "")
22+
flag.IntVar(&workers, "workers", 1, "")
2023
flag.Parse()
2124
}
2225

@@ -49,22 +52,12 @@ func linearGrow(data []byte, length uint64, timeLine time.Duration) {
4952

5053
}
5154

52-
func main() {
53-
length, err := humanize.ParseBytes(memSize)
54-
if err != nil {
55-
// TODO
56-
print(err)
57-
}
58-
59-
timeLine, err := time.ParseDuration(growthTime)
60-
if err != nil {
61-
// TODO
62-
}
63-
55+
func run(length uint64, timeLine time.Duration) {
6456
data, err := syscall.Mmap(-1, 0, int(length), syscall.PROT_READ|syscall.PROT_WRITE, syscall.MAP_PRIVATE|syscall.MAP_ANONYMOUS)
6557
if err != nil {
6658
// TODO
67-
print(err)
59+
fmt.Println(err.Error())
60+
os.Exit(1)
6861
}
6962

7063
if timeLine > time.Nanosecond {
@@ -80,3 +73,23 @@ func main() {
8073
time.Sleep(time.Second * 2)
8174
}
8275
}
76+
77+
func main() {
78+
length, err := humanize.ParseBytes(memSize)
79+
if err != nil {
80+
// TODO
81+
fmt.Println(err.Error())
82+
}
83+
84+
timeLine, err := time.ParseDuration(growthTime)
85+
if err != nil {
86+
// TODO
87+
}
88+
89+
for i := 0; i < workers; i++ {
90+
go run(length, timeLine)
91+
}
92+
for {
93+
time.Sleep(time.Second * 2)
94+
}
95+
}

0 commit comments

Comments
 (0)