Browse Source

Merge branch 'master' into develop

pull/1780/head
Ethan Buchman 6 years ago
parent
commit
a7e049a228
2 changed files with 24 additions and 4 deletions
  1. +8
    -0
      CHANGELOG.md
  2. +16
    -4
      autofile/group.go

+ 8
- 0
CHANGELOG.md View File

@ -6,6 +6,14 @@
BREAKING: BREAKING:
## 0.8.4
*June 5, 2018*
IMPROVEMENTS:
- [autofile] Flush on Stop; Close() method to Flush and close file
## 0.8.3 ## 0.8.3
*May 21, 2018* *May 21, 2018*


+ 16
- 4
autofile/group.go View File

@ -71,8 +71,9 @@ type Group struct {
// and their dependencies. // and their dependencies.
} }
// OpenGroup creates a new Group with head at headPath. It returns an error if
// it fails to open head file.
func OpenGroup(headPath string) (g *Group, err error) { func OpenGroup(headPath string) (g *Group, err error) {
dir := path.Dir(headPath) dir := path.Dir(headPath)
head, err := OpenAutoFile(headPath) head, err := OpenAutoFile(headPath)
if err != nil { if err != nil {
@ -98,16 +99,27 @@ func OpenGroup(headPath string) (g *Group, err error) {
return return
} }
// OnStart implements Service by starting the goroutine that checks file and
// group limits.
func (g *Group) OnStart() error { func (g *Group) OnStart() error {
g.BaseService.OnStart()
go g.processTicks() go g.processTicks()
return nil return nil
} }
// NOTE: g.Head must be closed separately
// OnStop implements Service by stopping the goroutine described above.
// NOTE: g.Head must be closed separately using Close.
func (g *Group) OnStop() { func (g *Group) OnStop() {
g.BaseService.OnStop()
g.ticker.Stop() g.ticker.Stop()
g.Flush() // flush any uncommitted data
}
// Close closes the head file. The group must be stopped by this moment.
func (g *Group) Close() {
g.Flush() // flush any uncommitted data
g.mtx.Lock()
_ = g.Head.closeFile()
g.mtx.Unlock()
} }
// SetHeadSizeLimit allows you to overwrite default head size limit - 10MB. // SetHeadSizeLimit allows you to overwrite default head size limit - 10MB.


Loading…
Cancel
Save