Locklessハッシュをやっている?

hash.cより

  word2 = ( ( HASH_KEY & ~(uint64_t)0x7fU )
	    | (uint64_t)( (turn<<6) | ( state_node & node_mate_threat )
			  | (value_type<<3) | trans_table_age ) );
  word1 = ( ( (uint64_t)( depth<<16 | (value+32768) ) << 40 )
	    | ( (uint64_t)( move & 0x7ffffU ) << 21 )
	    | HAND_B );

  index = (unsigned int)HASH_KEY & hash_mask;
  hash_word1 = ptrans_table[index].prefer.word1;
  hash_word2 = ptrans_table[index].prefer.word2;
  SignKey( hash_word2, hash_word1 );
  age_hash   = (int)((unsigned int)(hash_word2    ) & 0x07U);
  depth_hash = (int)((unsigned int)(hash_word1>>56) & 0xffU);

違う違う。単なるハッシュの参照だった。感違いです。失礼


grep lock *.c
したら普通にlockしてた(^^;


Re: [computer-go] Lockless hash table and other parallel search ideas
http://www.mail-archive.com/computer-go@computer-go.org/msg07613.html