mirror of https://github.com/ledisdb/ledisdb.git
use async notify
This commit is contained in:
parent
0a64b592d5
commit
6d293ce152
|
@ -83,10 +83,7 @@ func syncCommand(c *client) error {
|
|||
c.lastLogID = logId - 1
|
||||
|
||||
if c.ack != nil && logId > c.ack.id {
|
||||
select {
|
||||
case c.ack.ch <- logId:
|
||||
default:
|
||||
}
|
||||
asyncNotifyUint64(c.ack.ch, logId)
|
||||
c.ack = nil
|
||||
}
|
||||
|
||||
|
|
|
@ -54,10 +54,7 @@ func newMaster(app *App) *master {
|
|||
}
|
||||
|
||||
func (m *master) Close() {
|
||||
select {
|
||||
case m.quit <- struct{}{}:
|
||||
default:
|
||||
}
|
||||
ledis.AsyncNotify(m.quit)
|
||||
|
||||
if m.conn != nil {
|
||||
m.conn.Close()
|
||||
|
@ -262,11 +259,15 @@ func (app *App) removeSlave(c *client) {
|
|||
delete(app.slaves, c)
|
||||
|
||||
if c.ack != nil {
|
||||
select {
|
||||
case c.ack.ch <- c.lastLogID:
|
||||
default:
|
||||
asyncNotifyUint64(c.ack.ch, c.lastLogID)
|
||||
}
|
||||
}
|
||||
|
||||
func asyncNotifyUint64(ch chan uint64, v uint64) {
|
||||
select {
|
||||
case ch <- v:
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
func (app *App) publishNewLog(l *rpl.Log) {
|
||||
|
|
Loading…
Reference in New Issue