Month of November , 2007
Submitted by aruga on 2007, November 29 - 8:36pm.
Tagged: Java
仕事で某社のシステムを調べていたところ、Javaのファイルロックをこんなコードで実現してました。
File lockFile = new File("file.lock");
int retryCount = 30; // timeout = 3sec
while (! lockFile.createNewFile()) {
if ((retryCount--) == 0) {
throw new LockFailedException("give up!");
}
Thread.sleep(100);
}
try {
// ファイルロックで保護された処理
...
} finally {
lockFile.delete();
}
間違ったファイルロック実装
このコードのどこが問題なのでしょう?
Submitted by fujiwara on 2007, November 26 - 11:57am.
今回は "8 Managing releases and branchy development" を読みます。
8.1 Giving a persistent name to a revision
ブランチの話の筈が、まずは「タグ」に関する説明です。
Submitted by fujiwara on 2007, November 9 - 1:58pm.
今回は "13. Advanced uses of Mercurial Queues" を読みます。
この章では、 筆者(Bryan O'Sullivan)が Linux infiniband デバイスドライバ開発を通して得た経験を元に、 より踏み込んだ MQ 利用が紹介されています。 「込み入った開発環境でも使えるようにするには、 あまり利用されない機能の説明が必要」との方針に違わず、 読み込むのに苦労する章です (前章に比べれば分量的にも全然少ないのですが…)。