本文整理汇总了Golang中github.com/cznic/exp/lldb.Filer.Truncate方法的典型用法代码示例。如果您正苦于以下问题:Golang Filer.Truncate方法的具体用法?Golang Filer.Truncate怎么用?Golang Filer.Truncate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/cznic/exp/lldb.Filer
的用法示例。
在下文中一共展示了Filer.Truncate方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: acidFiler
func (o *Options) acidFiler(db *DB, f lldb.Filer) (r lldb.Filer, err error) {
switch o._ACID {
default:
panic("internal error")
case _ACIDTransactions:
if r, err = lldb.NewRollbackFiler(
f,
func(sz int64) error {
return f.Truncate(sz)
},
f,
); err != nil {
return nil, err
}
return r, nil
case _ACIDFull:
if r, err = lldb.NewACIDFiler(f, o.wal); err != nil {
return nil, err
}
db.acidState = stIdle
db.gracePeriod = o._GracePeriod
if o._GracePeriod == 0 {
panic("internal error")
}
return r, nil
}
}
示例2: acidFiler
func (o *Options) acidFiler(db *DB, f lldb.Filer) (r lldb.Filer, err error) {
switch o.ACID {
default:
panic("internal error")
case ACIDNone:
r = f
case ACIDTransactions:
var rf *lldb.RollbackFiler
if rf, err = lldb.NewRollbackFiler(
f,
func(sz int64) error {
return f.Truncate(sz)
},
f,
); err != nil {
return
}
db.xact = true
r = rf
case ACIDFull:
if r, err = lldb.NewACIDFiler(f, o.wal); err != nil {
return
}
db.acidState = stIdle
db.gracePeriod = o.GracePeriod
db.xact = true
if o.GracePeriod == 0 {
db.acidState = stDisabled
break
}
// Ensure GOMAXPROCS > 1, required for ACID FSM
if n := runtime.GOMAXPROCS(0); n > 1 {
return
}
runtime.GOMAXPROCS(2)
}
return
}