| … | … | @@ -4242,10 +4242,12 @@ int intintLCGLinearOpenCompactOpenMPHash_InnerQuerySingle(char *tableData, |
| 4242 | 4242 | c) % |
| 4243 | 4243 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) |
| 4244 | 4244 | tableData)->numBuckets); |
| 4245 | | if ((buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 4245 | int old_key = |
| 4246 | __sync_val_compare_and_swap(&buckets[index].key, -1, key); |
| 4247 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 4246 | 4248 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 4247 | 4249 | break; |
| 4248 | | } else if (key == buckets[index].key) { |
| 4250 | } else if (old_key == key) { |
| 4249 | 4251 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 4250 | 4252 | break; |
| 4251 | 4253 | } else if ((index == c && iteration > 0)) { |
| … | … | @@ -4294,10 +4296,13 @@ int intintLCGLinearOpenCompactOpenMPHash_InnerQuery(char *tableData, |
| 4294 | 4296 | c) % |
| 4295 | 4297 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) |
| 4296 | 4298 | tableData)->numBuckets); |
| 4297 | | if ((buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 4299 | int old_key = |
| 4300 | __sync_val_compare_and_swap(&buckets[index].key, -1, |
| 4301 | key); |
| 4302 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 4298 | 4303 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 4299 | 4304 | break; |
| 4300 | | } else if (key == buckets[index].key) { |
| 4305 | } else if (old_key == key) { |
| 4301 | 4306 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 4302 | 4307 | break; |
| 4303 | 4308 | } else if ((index == c && iteration > 0)) { |
| … | … | @@ -4339,14 +4344,12 @@ int intintLCGLinearOpenCompactOpenMPHash_InnerInsertSingle(char *tableData, |
| 4339 | 4344 | c) % |
| 4340 | 4345 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) |
| 4341 | 4346 | tableData)->numBuckets); |
| 4342 | | if (((buckets[index].key == |
| 4343 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 4344 | | key, |
| 4345 | | HASH_BUCKET_STATUS_EMPTY) : |
| 4346 | | buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 4347 | int old_key = |
| 4348 | __sync_val_compare_and_swap(&buckets[index].key, -1, key); |
| 4349 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 4347 | 4350 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 4348 | 4351 | break; |
| 4349 | | } else if (key == buckets[index].key) { |
| 4352 | } else if (old_key == key) { |
| 4350 | 4353 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 4351 | 4354 | break; |
| 4352 | 4355 | } else if ((index == c && iteration > 0)) { |
| … | … | @@ -4393,15 +4396,13 @@ int intintLCGLinearOpenCompactOpenMPHash_InnerInsert(char *tableData, |
| 4393 | 4396 | c) % |
| 4394 | 4397 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) |
| 4395 | 4398 | tableData)->numBuckets); |
| 4396 | | if (((buckets[index].key == |
| 4397 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 4398 | | key, |
| 4399 | | HASH_BUCKET_STATUS_EMPTY) |
| 4400 | | : buckets[index].key) == |
| 4401 | | HASH_BUCKET_STATUS_EMPTY) { |
| 4399 | int old_key = |
| 4400 | __sync_val_compare_and_swap(&buckets[index].key, -1, |
| 4401 | key); |
| 4402 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 4402 | 4403 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 4403 | 4404 | break; |
| 4404 | | } else if (key == buckets[index].key) { |
| 4405 | } else if (old_key == key) { |
| 4405 | 4406 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 4406 | 4407 | break; |
| 4407 | 4408 | } else if ((index == c && iteration > 0)) { |
| … | … | @@ -4445,14 +4446,12 @@ int intintLCGLinearOpenCompactOpenMPHash_InnerInsertSingleNoOverwrite(char |
| 4445 | 4446 | c) % |
| 4446 | 4447 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) |
| 4447 | 4448 | tableData)->numBuckets); |
| 4448 | | if (((buckets[index].key == |
| 4449 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 4450 | | key, |
| 4451 | | HASH_BUCKET_STATUS_EMPTY) : |
| 4452 | | buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 4449 | int old_key = |
| 4450 | __sync_val_compare_and_swap(&buckets[index].key, -1, key); |
| 4451 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 4453 | 4452 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 4454 | 4453 | break; |
| 4455 | | } else if (key == buckets[index].key) { |
| 4454 | } else if (old_key == key) { |
| 4456 | 4455 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 4457 | 4456 | break; |
| 4458 | 4457 | } else if ((index == c && iteration > 0)) { |
| … | … | @@ -4500,15 +4499,13 @@ int intintLCGLinearOpenCompactOpenMPHash_InnerInsertNoOverwrite(char *tableData, |
| 4500 | 4499 | c) % |
| 4501 | 4500 | ((intintLCGLinearOpenCompactOpenMPHash_TableData *) |
| 4502 | 4501 | tableData)->numBuckets); |
| 4503 | | if (((buckets[index].key == |
| 4504 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 4505 | | key, |
| 4506 | | HASH_BUCKET_STATUS_EMPTY) |
| 4507 | | : buckets[index].key) == |
| 4508 | | HASH_BUCKET_STATUS_EMPTY) { |
| 4502 | int old_key = |
| 4503 | __sync_val_compare_and_swap(&buckets[index].key, -1, |
| 4504 | key); |
| 4505 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 4509 | 4506 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 4510 | 4507 | break; |
| 4511 | | } else if (key == buckets[index].key) { |
| 4508 | } else if (old_key == key) { |
| 4512 | 4509 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 4513 | 4510 | break; |
| 4514 | 4511 | } else if ((index == c && iteration > 0)) { |
| … | … | @@ -5650,10 +5647,12 @@ int intintLCGQuadraticOpenCompactOpenMPHash_InnerQuerySingle(char *tableData, |
| 5650 | 5647 | c) % |
| 5651 | 5648 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData *) |
| 5652 | 5649 | tableData)->numBuckets); |
| 5653 | | if ((buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 5650 | int old_key = |
| 5651 | __sync_val_compare_and_swap(&buckets[index].key, -1, key); |
| 5652 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 5654 | 5653 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 5655 | 5654 | break; |
| 5656 | | } else if (key == buckets[index].key) { |
| 5655 | } else if (old_key == key) { |
| 5657 | 5656 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 5658 | 5657 | break; |
| 5659 | 5658 | } else |
| … | … | @@ -5706,10 +5705,13 @@ int intintLCGQuadraticOpenCompactOpenMPHash_InnerQuery(char *tableData, |
| 5706 | 5705 | c) % |
| 5707 | 5706 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData |
| 5708 | 5707 | *) tableData)->numBuckets); |
| 5709 | | if ((buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 5708 | int old_key = |
| 5709 | __sync_val_compare_and_swap(&buckets[index].key, -1, |
| 5710 | key); |
| 5711 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 5710 | 5712 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 5711 | 5713 | break; |
| 5712 | | } else if (key == buckets[index].key) { |
| 5714 | } else if (old_key == key) { |
| 5713 | 5715 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 5714 | 5716 | break; |
| 5715 | 5717 | } else |
| … | … | @@ -5755,14 +5757,12 @@ int intintLCGQuadraticOpenCompactOpenMPHash_InnerInsertSingle(char *tableData, |
| 5755 | 5757 | c) % |
| 5756 | 5758 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData *) |
| 5757 | 5759 | tableData)->numBuckets); |
| 5758 | | if (((buckets[index].key == |
| 5759 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 5760 | | key, |
| 5761 | | HASH_BUCKET_STATUS_EMPTY) : |
| 5762 | | buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 5760 | int old_key = |
| 5761 | __sync_val_compare_and_swap(&buckets[index].key, -1, key); |
| 5762 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 5763 | 5763 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 5764 | 5764 | break; |
| 5765 | | } else if (key == buckets[index].key) { |
| 5765 | } else if (old_key == key) { |
| 5766 | 5766 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 5767 | 5767 | break; |
| 5768 | 5768 | } else |
| … | … | @@ -5814,15 +5814,13 @@ int intintLCGQuadraticOpenCompactOpenMPHash_InnerInsert(char *tableData, |
| 5814 | 5814 | c) % |
| 5815 | 5815 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData |
| 5816 | 5816 | *) tableData)->numBuckets); |
| 5817 | | if (((buckets[index].key == |
| 5818 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 5819 | | key, |
| 5820 | | HASH_BUCKET_STATUS_EMPTY) |
| 5821 | | : buckets[index].key) == |
| 5822 | | HASH_BUCKET_STATUS_EMPTY) { |
| 5817 | int old_key = |
| 5818 | __sync_val_compare_and_swap(&buckets[index].key, -1, |
| 5819 | key); |
| 5820 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 5823 | 5821 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 5824 | 5822 | break; |
| 5825 | | } else if (key == buckets[index].key) { |
| 5823 | } else if (old_key == key) { |
| 5826 | 5824 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 5827 | 5825 | break; |
| 5828 | 5826 | } else |
| … | … | @@ -5871,14 +5869,12 @@ int intintLCGQuadraticOpenCompactOpenMPHash_InnerInsertSingleNoOverwrite(char |
| 5871 | 5869 | c) % |
| 5872 | 5870 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData *) |
| 5873 | 5871 | tableData)->numBuckets); |
| 5874 | | if (((buckets[index].key == |
| 5875 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 5876 | | key, |
| 5877 | | HASH_BUCKET_STATUS_EMPTY) : |
| 5878 | | buckets[index].key) == HASH_BUCKET_STATUS_EMPTY) { |
| 5872 | int old_key = |
| 5873 | __sync_val_compare_and_swap(&buckets[index].key, -1, key); |
| 5874 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 5879 | 5875 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 5880 | 5876 | break; |
| 5881 | | } else if (key == buckets[index].key) { |
| 5877 | } else if (old_key == key) { |
| 5882 | 5878 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 5883 | 5879 | break; |
| 5884 | 5880 | } else |
| … | … | @@ -5932,15 +5928,13 @@ int intintLCGQuadraticOpenCompactOpenMPHash_InnerInsertNoOverwrite(char |
| 5932 | 5928 | c) % |
| 5933 | 5929 | ((intintLCGQuadraticOpenCompactOpenMPHash_TableData |
| 5934 | 5930 | *) tableData)->numBuckets); |
| 5935 | | if (((buckets[index].key == |
| 5936 | | HASH_BUCKET_STATUS_EMPTY) ? (buckets[index].key = |
| 5937 | | key, |
| 5938 | | HASH_BUCKET_STATUS_EMPTY) |
| 5939 | | : buckets[index].key) == |
| 5940 | | HASH_BUCKET_STATUS_EMPTY) { |
| 5931 | int old_key = |
| 5932 | __sync_val_compare_and_swap(&buckets[index].key, -1, |
| 5933 | key); |
| 5934 | if (old_key == HASH_BUCKET_STATUS_EMPTY) { |
| 5941 | 5935 | exitCode = HASH_SEARCH_CODE_EMPTY; |
| 5942 | 5936 | break; |
| 5943 | | } else if (key == buckets[index].key) { |
| 5937 | } else if (old_key == key) { |
| 5944 | 5938 | exitCode = HASH_SEARCH_CODE_MATCH; |
| 5945 | 5939 | break; |
| 5946 | 5940 | } else |