sbclのsb-posixライブラリで知っていたら教えてほしい。
ファイルを他のプロセス対してロックしたいのだがうまくいかない。
処理系はsbcl ver 1.0.30 (os xで使用)
コードは以下の通り
;;defmacro! はlolのコードを拝借した
;;g!で始まるシンボルは(gensym)で生成したもの

(require :sb-posix)
(defmacro! with-locking-open-file ((s pathname &rest params) &body body)
`(with-open-file (,s ,pathname ,@params)
(let ((,g!flock (make-instance 'sb-posix:flock
:type sb-posix:f-wrlck
:whence sb-posix:seek-set
:start 0 :len 0)))
(sb-posix:fcntl ,s sb-posix:f-setlk ,g!flock) ;;lock file
(unwind-protect
,@body
(let ((,g!unflock (make-instance 'sb-posix:flock
:type sb-posix:f-unlck
:whence sb-posix:seek-set
:start 0 :len 0)))
(sb-posix:fcntl ,s sb-posix:f-setlk ,g!unflock))))))

(with-locking-open-file (f "test" :direction :output :if-exists :supersede)
(sleep 100))
;;ロックされなーい