tarm / serial

BSD 3-Clause "New" or "Revised" License
1.6k stars 453 forks source link

windows not close event #56

Open wildfire810 opened 7 years ago

wildfire810 commented 7 years ago

func (p *Port) Close() error { return p.f.Close() }

func newOverlapped() (*syscall.Overlapped, error) { var overlapped syscall.Overlapped r, _, err := syscall.Syscall6(nCreateEvent, 4, 0, 1, 0, 0, 0, 0) if r == 0 { return nil, err } overlapped.HEvent = syscall.Handle(r) return &overlapped, nil }

eohome commented 7 years ago

the same question,anyone who fixed it

andarm commented 6 years ago
    s, err := serial.OpenPort(c)
    if err != nil {
        s.Close()
        log.Fatal(err)
    }
    defer s.Close()

solve it .

plopezm commented 5 years ago

I have the same problem, sometimes, when close() is executed, the library blocks the application waiting for something