713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
|
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
|
+
+
+
-
+
|
atomic_store(&filed_sockettimeout_sockstatus[sockfd].valid, false);
return;
}
static void *filed_sockettimeout_thread(void *arg) {
struct timespec sleep_time;
time_t now, expiration_time;
pthread_t thread_id;
long idx;
int count;
bool valid;
while (1) {
for (count = 0; count < 10; count++) {
sleep_time.tv_sec = 30;
sleep_time.tv_nsec = 0;
usleep(30000000);
nanosleep(&sleep_time, NULL);
now = time(NULL);
atomic_store(&filed_sockettimeout_time, now);
}
for (idx = 0; idx < filed_sockettimeout_sockstatus_length; idx++) {
|
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
|
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
|
-
+
|
return(5);
}
/* Wait for threads to exit */
/* XXX:TODO: Monitor thread usage */
while (1) {
sleep(60);
sleep(86400);
}
/* Return in failure */
return(2);
}
|