]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
test1565: fix windows build errors
authorJay Satiro <raysatiro@yahoo.com>
Mon, 2 Aug 2021 03:15:37 +0000 (23:15 -0400)
committerJay Satiro <raysatiro@yahoo.com>
Tue, 10 Aug 2021 07:29:40 +0000 (03:29 -0400)
- Use our wait_ms() instead of sleep() since Windows doesn't have the
  latter.

- Use a separate variable to keep track of whether the pthread_t thread
  id is valid.

On Windows pthread_t is not an integer type. pthread offers no macro for
invalid pthread_t thread id, so validity is kept track of separately.

Closes https://github.com/curl/curl/pull/7527

tests/libtest/lib1565.c

index 6ea7d4e0c9855700229bc719c49d40addbcf7d78..ba0bd138264963bc866b64aee1c9268d29e76ce8 100644 (file)
@@ -50,7 +50,7 @@ static void *run_thread(void *ptr)
   (void)ptr;
 
   for(i = 0; i < CONN_NUM; i++) {
-    sleep(TIME_BETWEEN_START_SECS);
+    wait_ms(TIME_BETWEEN_START_SECS * 1000);
 
     easy_init(easy);
 
@@ -96,7 +96,8 @@ int test(char *URL)
   CURL *started_handles[CONN_NUM];
   int started_num = 0;
   int finished_num = 0;
-  pthread_t tid = 0;
+  pthread_t tid;
+  bool tid_valid = false;
   struct CURLMsg *message;
 
   start_test_timing();
@@ -108,7 +109,9 @@ int test(char *URL)
   url = URL;
 
   res = pthread_create(&tid, NULL, run_thread, NULL);
-  if(0 != res) {
+  if(!res)
+    tid_valid = true;
+  else {
     fprintf(stderr, "%s:%d Couldn't create thread, errno %d\n",
             __FILE__, __LINE__, res);
     goto test_cleanup;
@@ -182,7 +185,7 @@ test_cleanup:
     test_failure = res;
   pthread_mutex_unlock(&lock);
 
-  if(0 != tid)
+  if(tid_valid)
     pthread_join(tid, NULL);
 
   curl_multi_cleanup(multi);