()
| 946 | } |
| 947 | |
| 948 | func (b *batchQueue) Get() *writeBatch { |
| 949 | b.cond.L.Lock() |
| 950 | defer b.cond.L.Unlock() |
| 951 | |
| 952 | for len(b.queue) == 0 && !b.closed { |
| 953 | b.cond.Wait() |
| 954 | } |
| 955 | |
| 956 | if len(b.queue) == 0 { |
| 957 | return nil |
| 958 | } |
| 959 | |
| 960 | batch := b.queue[0] |
| 961 | b.queue[0] = nil |
| 962 | b.queue = b.queue[1:] |
| 963 | |
| 964 | return batch |
| 965 | } |
| 966 | |
| 967 | func (b *batchQueue) Close() { |
| 968 | b.cond.L.Lock() |
no outgoing calls