forked from mirror/readline
int63 changed to int32 in order to make readline runnable on arm 32bit devices [terminal.go]
This commit is contained in:
parent
77fbb66748
commit
4bc3b1f4f4
12
terminal.go
12
terminal.go
|
@ -13,11 +13,11 @@ type Terminal struct {
|
||||||
cfg *Config
|
cfg *Config
|
||||||
state *terminal.State
|
state *terminal.State
|
||||||
outchan chan rune
|
outchan chan rune
|
||||||
closed int64
|
closed int32
|
||||||
stopChan chan struct{}
|
stopChan chan struct{}
|
||||||
kickChan chan struct{}
|
kickChan chan struct{}
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
isReading int64
|
isReading int32
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewTerminal(cfg *Config) (*Terminal, error) {
|
func NewTerminal(cfg *Config) (*Terminal, error) {
|
||||||
|
@ -61,7 +61,7 @@ func (t *Terminal) ReadRune() rune {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Terminal) IsReading() bool {
|
func (t *Terminal) IsReading() bool {
|
||||||
return atomic.LoadInt64(&t.isReading) == 1
|
return atomic.LoadInt32(&t.isReading) == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Terminal) KickRead() {
|
func (t *Terminal) KickRead() {
|
||||||
|
@ -83,10 +83,10 @@ func (t *Terminal) ioloop() {
|
||||||
buf := bufio.NewReader(Stdin)
|
buf := bufio.NewReader(Stdin)
|
||||||
for {
|
for {
|
||||||
if !expectNextChar {
|
if !expectNextChar {
|
||||||
atomic.StoreInt64(&t.isReading, 0)
|
atomic.StoreInt32(&t.isReading, 0)
|
||||||
select {
|
select {
|
||||||
case <-t.kickChan:
|
case <-t.kickChan:
|
||||||
atomic.StoreInt64(&t.isReading, 1)
|
atomic.StoreInt32(&t.isReading, 1)
|
||||||
case <-t.stopChan:
|
case <-t.stopChan:
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -132,7 +132,7 @@ func (t *Terminal) Bell() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Terminal) Close() error {
|
func (t *Terminal) Close() error {
|
||||||
if atomic.SwapInt64(&t.closed, 1) != 0 {
|
if atomic.SwapInt32(&t.closed, 1) != 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
t.stopChan <- struct{}{}
|
t.stopChan <- struct{}{}
|
||||||
|
|
Loading…
Reference in New Issue