-func (ctx *Ctx) LockDir(nodeId *NodeId, xx TRxTx) (*os.File, error) {
- ctx.ensureRxDir(nodeId)
- lockPath := filepath.Join(ctx.Spool, nodeId.String(), string(xx)) + ".lock"
- dirLock, err := os.OpenFile(
- lockPath,
- os.O_CREATE|os.O_WRONLY,
- os.FileMode(0600),
- )
- if err != nil {
- ctx.LogE("lockdir", SDS{"path": lockPath, "err": err}, "")
- return nil, err
- }
- err = unix.Flock(int(dirLock.Fd()), unix.LOCK_EX|unix.LOCK_NB)
- if err != nil {
- ctx.LogE("lockdir", SDS{"path": lockPath, "err": err}, "")
- dirLock.Close()
- return nil, err
- }
- return dirLock, nil
-}
-
-func (ctx *Ctx) UnlockDir(fd *os.File) {
- if fd != nil {
- unix.Flock(int(fd.Fd()), unix.LOCK_UN)
- fd.Close()
- }
-}
-
-func (ctx *Ctx) Toss(nodeId *NodeId, nice uint8, dryRun bool) bool {
- dirLock, err := ctx.LockDir(nodeId, TRx)
- if err != nil {
- return false
- }
- defer ctx.UnlockDir(dirLock)
+func (ctx *Ctx) Toss(
+ nodeId *NodeId,
+ nice uint8,
+ dryRun, doSeen, noFile, noFreq, noExec, noTrns bool,
+) bool {