Reading Gauche/Reading Gauche 0.9/gc/pthread_support.c/GC_pause の変更点



 #setlinebreak(on)
 #topicpath
 *GC_pause [#r20428ba]
 *概要 [#n519cc87]
 GCの処理を一時停止させる。そのために、インラインアセンブラで空の命令を発行する。
 
  /* Spend a few cycles in a way that can't introduce contention with	*/
  /* othre threads.							*/
  void GC_pause(void)
  {
     int i;
  #   if !defined(__GNUC__) || defined(__INTEL_COMPILER)
       volatile word dummy = 0;
  #   endif
  
     for (i = 0; i < 10; ++i) { 
  #     if defined(__GNUC__) && !defined(__INTEL_COMPILER)
         __asm__ __volatile__ (" " : : : "memory");
  #     else
 	/* Something that's unlikely to be optimized away. */
 	GC_noop(++dummy);
  #     endif
     }
  }
 
 *調べるもの [#o7d372f3]
 
 *参照元 [#a735d060]
 #related
 
 *コメント [#f7fc342c]
 #pcomment(,1000,below,reply)
 

リロード   新規 編集 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.004 sec.