示例#1
0
    void threadFunc(int threadNum, void* param)
    {
        Result* result = (Result*) param;

        LWLOG("Begin loop", threadNum);
        if (!result->plugin->DoThread(threadNum, &result->params))
            mint_store_32_relaxed(&result->failed, 1);
        LWLOG("End loop", threadNum);
    }
		void addKmer(InternalKmer key) override
		{
			InternalKmer value = 1;
			if (key == 0) { return; }
			assert(key != 0);
			assert(value != 0);

			for (uint32_t idx = integerHash(key);; idx++)
			{
				idx &= m_total_set_size - 1;

				uint32_t prevKey = mint_compare_exchange_strong_32_relaxed(&m_entries[idx].key, 0, key);
				if ((prevKey == 0) || (prevKey == key))
				{
					mint_store_32_relaxed(&m_entries[idx].value, value);
					return;
				}
			}
		}