THR_KEY_mysys
MySQL のソースを追いかけていて見つけた事実。THR_KEY_mysys の定義。 Where is THR_KEY_mysys defined ? というメールがはるか昔 2003 年に mysql-general に流れていて、返答が意外と冷たいものだったので

kwiさんのブログ記事

前へ[ python datetime to timestamp ]
[ OpenCV で IPP を使う ]次へ

THR_KEY_mysys

spacer
MySQL のソースを追いかけていて見つけた事実。THR_KEY_mysys の定義。

Where is THR_KEY_mysys defined ? というメールがはるか昔 2003 年に mysql-general に流れていて、返答が意外と冷たいものだったのでびっくりしましたが、わたしもはまりました。

結論から行くと、my_thr_init.c の pthread_key マクロ(!)で定義されています。
#ifdef THREAD
#ifdef USE_TLS
pthread_key(struct st_my_thread_var*, THR_KEY_mysys);
#else
pthread_key(struct st_my_thread_var, THR_KEY_mysys);
#endif /* USE_TLS */

よくよく見ると、関数にしてはおかしな位置におかしな格好で入り込んでいるな、ということで気がつきましたが、これは難しい。ちなみにこのマクロは typedef とほとんど同じようなことをします。つまり THR_KEY_mysys の型が struct st_my_thread_var になります。
  • │2009-01-19 11:22:17│ カテゴリー:日記│ コメント(0) │ トラックバック(0)
  • 宛先 :
  • トラックバックURL:
  • この記事にトラックバックをする場合は、i-revoポータルサイトご利用上の注意を必ずご確認ください。
loading
loading
kwiさん
お友達人数:19人
spacer
spacer

© 2011 Internet Revolution