func()

in page.go [246:269]


func (p *Page) doFlush(op string) reason {
	if !p.flags.dirty || p.flags.flushed {
		return nil
	}

	if !p.flags.new {
		if p.id == p.ondiskID {
			walID := p.tx.allocWALID(p.id)
			if walID == 0 {
				const msg = "not enough space to allocate write ahead page"
				return &Error{op: op, kind: OutOfMemory, ctx: p.errCtx(), msg: msg}
			}
			p.ondiskID = walID
		} else {
			// page already in WAL -> free WAL page and write into original page
			p.tx.freeWALID(p.id, p.ondiskID)
			p.ondiskID = p.id
		}
	}

	p.flags.flushed = true
	p.tx.scheduleWrite(p.ondiskID, p.bytes)
	return nil
}