X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=tests%2Ftest_urcu_hash.c;h=70db8b3ca750f398f7314c9a6b794b3140d1bd20;hb=5488222bbdb95680d942c3fb645095b48e96620f;hp=cbbddc8c8cef72d9d59a1ee08f1b6e970748bd69;hpb=1f689e13ea7e519b1afc001e9c55a7b1b60b599f;p=urcu.git diff --git a/tests/test_urcu_hash.c b/tests/test_urcu_hash.c index cbbddc8..70db8b3 100644 --- a/tests/test_urcu_hash.c +++ b/tests/test_urcu_hash.c @@ -200,7 +200,11 @@ static void sigusr2_handler(int signo) { char msg[1] = { 0x42 }; - write(count_pipe[1], msg, 1); /* wakeup thread */ + ssize_t ret; + + do { + ret = write(count_pipe[1], msg, 1); /* wakeup thread */ + } while (ret == -1L && errno == EINTR); } /* @@ -349,9 +353,9 @@ void hashword2( static unsigned long test_hash(void *_key, size_t length, unsigned long seed) { - unsigned long key = (unsigned long) _key; + unsigned int key = (unsigned int) _key; - assert(length == sizeof(unsigned long)); + assert(length == sizeof(unsigned int)); return hash_u32(&key, 1, seed); } #else @@ -884,7 +888,7 @@ int main(int argc, char **argv) */ rcu_register_thread(); test_ht = cds_lfht_new(test_hash, test_compare, 0x42UL, - init_hash_size, + init_hash_size, 1, opt_auto_resize ? CDS_LFHT_AUTO_RESIZE : 0, NULL); ret = populate_hash(); assert(!ret); @@ -943,7 +947,11 @@ int main(int argc, char **argv) } { char msg[1] = { 0x42 }; - write(count_pipe[1], msg, 1); /* wakeup thread */ + ssize_t ret; + + do { + ret = write(count_pipe[1], msg, 1); /* wakeup thread */ + } while (ret == -1L && errno == EINTR); } err = pthread_join(tid_count, &tret); if (err != 0)