Month of November , 2007
Tagged:

仕事で某社のシステムを調べていたところ、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();
    }
間違ったファイルロック実装

このコードのどこが問題なのでしょう?

Tagged:  •    •  

今回は "8 Managing releases and branchy development" を読みます。

8.1 Giving a persistent name to a revision

ブランチの話の筈が、まずは「タグ」に関する説明です。

Tagged:  •    •  

今回は "13. Advanced uses of Mercurial Queues" を読みます。

この章では、 筆者(Bryan O'Sullivan)が Linux infiniband デバイスドライバ開発を通して得た経験を元に、 より踏み込んだ MQ 利用が紹介されています。 「込み入った開発環境でも使えるようにするには、 あまり利用されない機能の説明が必要」との方針に違わず、 読み込むのに苦労する章です (前章に比べれば分量的にも全然少ないのですが…)。