()
| 225 | } |
| 226 | |
| 227 | func (this *Store) Close() error { |
| 228 | if this.isClosed { |
| 229 | return nil |
| 230 | } |
| 231 | |
| 232 | _ = this.locker.Release() |
| 233 | |
| 234 | this.mu.Lock() |
| 235 | var lastErr error |
| 236 | for _, db := range this.dbs { |
| 237 | err := db.Close() |
| 238 | if err != nil { |
| 239 | lastErr = err |
| 240 | } |
| 241 | } |
| 242 | |
| 243 | this.mu.Unlock() |
| 244 | |
| 245 | if this.rawDB != nil { |
| 246 | this.isClosed = true |
| 247 | err := this.rawDB.Close() |
| 248 | if err != nil { |
| 249 | return err |
| 250 | } |
| 251 | } |
| 252 | |
| 253 | return lastErr |
| 254 | } |
| 255 | |
| 256 | func (this *Store) IsClosed() bool { |
| 257 | return this.isClosed |