Meaning of locked by a dead stack or unrecognized lock
Does anyone know what could cause an error like this:
Trying to lock #<MP:LOCK "file-store-lock" Locked once by
"hunchentoot-worker-149932" 4100018B0B> : Waiting for a lock that is
locked by a dead stack or unrecognized lock 149914
What I'm doing is reading some data from the middle of a 19GB file.
Like this pseudo-code:
(mp:with-lock (fs-lock)
(with-timeout (*timeout*)
(file-position fs-stream offset)
(read-sequence buf fs-stream)))
This code is called from multiple threads on 64bit Linux LispWorks
5.1. *timeout* is 10 and with-timeout is a macro that uses a timer to
call mp:process-interrupt after *timeout* seconds.
I would think that mp:with-lock would guarantee that the lock would be
cleared and I wouldn't see this error.
Cheers,
Chris Dean