XInitThreads()
メインスレッド以外のスレッドからXサーバーへの呼び出しを実行できるようになることはわかっています。また、Qtを使用してセカンダリスレッドからOpenGL呼び出しを行う場合は、Xlibでの同時スレッドサポートが必要です。私は自分のアプリケーションをそのように必要としていますが、非常にまれな状況です。残念ながら、XInitThreads()はアプリケーションの実行の最初に呼び出す必要があるため、特定の実行に必要かどうかに影響します(マルチスレッドOpenGLが必要かどうかをアプリを実行する前に知る方法はありません)サポートするかどうか)。
XInitThread()を無用に呼び出しても、アプリケーションの全体的な動作は変わらないだろうと確信していますが、プログラミングはすべてトレードオフであり、マルチスレッドのサポートがXlibのデフォルトの動作ではない理由があると確信しています。
マニュアルページには、シングルスレッドプログラムがこの関数を呼び出さないことが推奨されていると書かれていますが、その理由は書かれていません。XInitThreads()を呼び出すときのトレードオフは何ですか?