From d1980f96745856299a784c5f43aa2ee5fd9fe8b5 Mon Sep 17 00:00:00 2001
From: 554325746@qq.com <554325746@qq.com>
Date: 星期四, 22 八月 2019 14:33:36 +0800
Subject: [PATCH] bug fix

---
 shm.go |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/shm.go b/shm.go
index 5a87130..106c4f2 100644
--- a/shm.go
+++ b/shm.go
@@ -53,10 +53,13 @@
 
 	ch := make(chan []byte)
 	go func(){
+		var body []byte
 		data := make([]byte, maxRecvSize)
 		n, err := s.rw.Read(data)
 		if err == nil || err == io.EOF {
-			data = data[:n:n]
+			body = make([]byte, n)
+			copy(body, data)
+			// data = data[:n:n]
 		}
 		ch <- data
 	}()
@@ -100,7 +103,6 @@
 
 	var param []int
 	for _, v := range args {
-		fmt.Println(v)
 		switch v.(type) {
 		case int:
 			param = append(param, v.(int))
@@ -109,13 +111,15 @@
 			return nil, errors.New("shmServer created recv error parameters")
 		}
 	}
-	if len(param) != 2 {
-		return nil, errors.New("shmServer created recv too much parameters")
-	}
 
+	blocks, size := 2, maxRecvSize
+	if len(param) == 2 {
+		blocks, size = param[0], param[1]
+		// return nil, errors.New("shmServer created recv too much parameters")
+	}
 	shm.Unlink(url)
 
-	rw, err := shm.CreateSimplex(url, 0644, param[0], param[1])
+	rw, err := shm.CreateSimplex(url, 0644, blocks, size)
 	if err == nil {
 		fmt.Println(rw.Name())
 		return &SHM{

--
Gitblit v1.8.0