You know how you stare at something for so long that you can't see what's wrong with it?
You know how ForeachMfsFile regularly throws errTmActiveLockConflict errors even though it's suposed to deal with them?
(This also applies to ForeachMfsFileTrans and ForeachTrans)
Well I finally found the reason. All 3 functions contain the code
Code:
if {[lsearch $::errorCode {errTmActiveLockConflict errTmBackgroundHoldoff errFsLockConflict]>-1} {
This is, of course, wrong - it should be
lsearch ?mode? list pattern
not
lsearch ?mode? pattern list
!!
(But it is syntactically valid so TCL does not throw an error - it just never matches anything!)
Replacing them with
Code:
if {[lsearch {errTmActiveLockConflict errTmBackgroundHoldoff errFsLockConflict} $::errorCode]>-1} {
works wonders. ;-)
Can't believe none of us have spotted this before, but better late than never