0

Linux で C ライブラリ libmarkdown2 (Discount) をラップする html 形式の文字列にマークダウン形式の文字列を変換する C++ 関数を作成しました。

string markdown2html(const string& markdown)
{
    auto m = mkd_string(&markdown[0], markdown.size(), 0);

    mkd_compile(m, 0);

    char* text;
    int len = mkd_document(m, &text);

    string html(text, text+len);

    mkd_cleanup(m);

    return html;
}

これはスレッドセーフですか?つまり、この関数を異なるスレッド コンテキストから並列に複数回安全に呼び出すことができますか? 割引のマークダウン ハンドルは、これを防ぐ可能性のあるグローバルな状態を共有していますか? このような使用に備えて、プロセスごとまたはスレッドごとに特別な初期化を行う必要がありますか?

4

1 に答える 1

2

私が知る限り、Discount で再入可能でない唯一のものはmkd_initialize()関数ですが、グローバルを静的に保つために 2.1.{mumble} で小さな再設計を行いました。

于 2012-10-17T21:34:10.000 に答える