36 lines
489 B
Go
36 lines
489 B
Go
package shim
|
|
|
|
import (
|
|
"net"
|
|
"sync"
|
|
)
|
|
|
|
// Wayland implements wayland mediation.
|
|
type Wayland struct {
|
|
// wayland socket path
|
|
Path string
|
|
|
|
// wayland connection
|
|
*net.UnixConn
|
|
|
|
connErr error
|
|
sync.Once
|
|
// wait for wayland client to exit
|
|
done chan struct{}
|
|
}
|
|
|
|
func (wl *Wayland) Close() error {
|
|
wl.Do(func() {
|
|
close(wl.done)
|
|
wl.connErr = wl.UnixConn.Close()
|
|
})
|
|
|
|
return wl.connErr
|
|
}
|
|
|
|
func NewWayland() *Wayland {
|
|
wl := new(Wayland)
|
|
wl.done = make(chan struct{})
|
|
return wl
|
|
}
|