zhangmeng
2023-05-16 4244acad88afc44ae8a34a8fbd9e296780a0cc64
main.go
@@ -10,8 +10,6 @@
   "sync"
   "time"
   "unsafe"
   "github.com/nsqio/go-nsq"
)
//export createProducer
@@ -62,7 +60,7 @@
type consumer struct {
   nsqcon *nsqclient.NsqConsumer
   lck    sync.Mutex
   msgs   []*nsq.Message
   msgs   [][]byte
}
//export createConsumer
@@ -89,12 +87,12 @@
//export Run
func Run(ch unsafe.Pointer, addr string) {
   c := ccvt(ch)
   c.nsqcon.AddHandler(nsq.HandlerFunc(func(msg *nsq.Message) error {
   c.nsqcon.AddHandler(func(msg []byte) error {
      c.lck.Lock()
      defer c.lck.Unlock()
      c.msgs = append(c.msgs, msg)
      return nil
   }))
   })
   c.nsqcon.Run(addr, 1)
}
@@ -102,12 +100,12 @@
//export RunLookupd
func RunLookupd(ch unsafe.Pointer, lookAddr string) {
   c := ccvt(ch)
   c.nsqcon.AddHandler(nsq.HandlerFunc(func(msg *nsq.Message) error {
   c.nsqcon.AddHandler(func(msg []byte) error {
      c.lck.Lock()
      defer c.lck.Unlock()
      c.msgs = append(c.msgs, msg)
      return nil
   }))
   })
   c.nsqcon.RunLookupd(lookAddr, 1)
}
@@ -124,9 +122,9 @@
   msg := c.msgs[0]
   c.msgs = c.msgs[1:]
   *size = C.size_t(len(msg.Body))
   *size = C.size_t(len(msg))
   ptr := C.malloc(*size)
   C.memcpy(ptr, unsafe.Pointer(&msg.Body[0]), *size)
   C.memcpy(ptr, unsafe.Pointer(&msg[0]), *size)
   *data = ptr
   return true