#include <iostream>
#include <string>
#include <thread>
namespace thread_test {
class create_index {
public:
void reference_index_hash(uint64_t &sequence_length, int &split,
std::string &sequence_content, uint64_t &erase_length);
};
}
size_t total_threads = std::thread::hardware_concurrency();
std::string sequence_content = "ABCDDBACDDDCBBAAACBDAADCBDAAADCBDADADACBDDCBBBCDCBCDAADCBBCDAAADCBDA";
uint64_t sequence_length = sequence_content.length();
int split = 5;
uint64_t erase_length = 0;
unsigned int seq_itr = 0;
int main(){
thread_test::create_index index;
std::thread threads[total_threads];
for(unsigned int i = 0; i < total_threads; i++){
threads[i] = std::thread(&thread_test::create_index::reference_index_hash,
index,
std::ref(sequence_length),
std::ref(split),
std::ref(sequence_content),
std::ref(erase_length));
}
for(unsigned int i = 0; i < total_threads; i++){
threads[i].join();
}
}
/*
* Creating index
*/
void thread_test::create_index::reference_index_hash(uint64_t &sequence_length, int &split,
std::string &sequence_content, uint64_t &erase_length ){
std::cout << this << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dGhyZWFkPgoKbmFtZXNwYWNlIHRocmVhZF90ZXN0IHsKCmNsYXNzIGNyZWF0ZV9pbmRleCB7CnB1YmxpYzoKCXZvaWQgcmVmZXJlbmNlX2luZGV4X2hhc2godWludDY0X3QgJnNlcXVlbmNlX2xlbmd0aCwgaW50ICZzcGxpdCwKCQkJc3RkOjpzdHJpbmcgJnNlcXVlbmNlX2NvbnRlbnQsIHVpbnQ2NF90ICZlcmFzZV9sZW5ndGgpOwp9Owp9CgpzaXplX3QgdG90YWxfdGhyZWFkcyA9IHN0ZDo6dGhyZWFkOjpoYXJkd2FyZV9jb25jdXJyZW5jeSgpOwoKc3RkOjpzdHJpbmcgc2VxdWVuY2VfY29udGVudCA9ICJBQkNEREJBQ0RERENCQkFBQUNCREFBRENCREFBQURDQkRBREFEQUNCRERDQkJCQ0RDQkNEQUFEQ0JCQ0RBQUFEQ0JEQSI7CnVpbnQ2NF90IHNlcXVlbmNlX2xlbmd0aCA9IHNlcXVlbmNlX2NvbnRlbnQubGVuZ3RoKCk7CmludCBzcGxpdCA9IDU7CnVpbnQ2NF90IGVyYXNlX2xlbmd0aCA9IDA7CnVuc2lnbmVkIGludCBzZXFfaXRyID0gMDsKCmludCBtYWluKCl7CiAgICB0aHJlYWRfdGVzdDo6Y3JlYXRlX2luZGV4IGluZGV4OwogICAgc3RkOjp0aHJlYWQgdGhyZWFkc1t0b3RhbF90aHJlYWRzXTsKCiAgICBmb3IodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgdG90YWxfdGhyZWFkczsgaSsrKXsKICAgICAgICB0aHJlYWRzW2ldID0gc3RkOjp0aHJlYWQoJnRocmVhZF90ZXN0OjpjcmVhdGVfaW5kZXg6OnJlZmVyZW5jZV9pbmRleF9oYXNoLAogICAgICAgIAkJICAgICAgICAgaW5kZXgsCgkJICAgICAgICAgc3RkOjpyZWYoc2VxdWVuY2VfbGVuZ3RoKSwKCQkgICAgICAgICBzdGQ6OnJlZihzcGxpdCksCgkJICAgICAgICAgc3RkOjpyZWYoc2VxdWVuY2VfY29udGVudCksCgkJICAgICAgICAgc3RkOjpyZWYoZXJhc2VfbGVuZ3RoKSk7CiAgICB9CgogICAgZm9yKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHRvdGFsX3RocmVhZHM7IGkrKyl7CiAgICAgICAgdGhyZWFkc1tpXS5qb2luKCk7CiAgICB9Cn0KCgoKLyoKICogQ3JlYXRpbmcgaW5kZXgKICovCnZvaWQgdGhyZWFkX3Rlc3Q6OmNyZWF0ZV9pbmRleDo6cmVmZXJlbmNlX2luZGV4X2hhc2godWludDY0X3QgJnNlcXVlbmNlX2xlbmd0aCwgaW50ICZzcGxpdCwKICAgICAgICBzdGQ6OnN0cmluZyAmc2VxdWVuY2VfY29udGVudCwgdWludDY0X3QgJmVyYXNlX2xlbmd0aCAgKXsKCiAgICBzdGQ6OmNvdXQgPDwgdGhpcyA8PCBzdGQ6OmVuZGw7Cn0K