fixed stop_oldest_thread always working issue

no fucking way
This commit is contained in:
Václav Šmejkal 2023-04-19 12:15:10 +02:00
parent fda282f491
commit 83c173e22a
Signed by: ENGO150
GPG Key ID: F6D6DF86242C5A59

View File

@ -365,13 +365,15 @@ void *why2_communicate_thread(void *arg)
//READ //READ
pthread_create(&thread_buffer, NULL, read_socket_raw_thread, &connection); pthread_create(&thread_buffer, NULL, read_socket_raw_thread, &connection);
why2_list_push(&waiting_list, &buffer, sizeof(thread_buffer)); //TODO: same address is always passed => stop_oldest_thread works every time; fix your shit why2_list_push(&waiting_list, &buffer, sizeof(thread_buffer));
//RUN DELETION THREAD //RUN DELETION THREAD
pthread_create(&thread_deletion_buffer, NULL, stop_oldest_thread, &thread_buffer); pthread_create(&thread_deletion_buffer, NULL, stop_oldest_thread, &thread_buffer);
//WAIT FOR MESSAGE
pthread_join(thread_buffer, &raw_ptr); pthread_join(thread_buffer, &raw_ptr);
why2_list_remove(&waiting_list, find_request(&thread_buffer)); why2_list_remove(&waiting_list, find_request(&thread_buffer));
pthread_cancel(thread_deletion_buffer);
if (raw_ptr == WHY2_INVALID_POINTER || raw_ptr == NULL) break; //QUIT COMMUNICATION IF INVALID PACKET WAS RECEIVED if (raw_ptr == WHY2_INVALID_POINTER || raw_ptr == NULL) break; //QUIT COMMUNICATION IF INVALID PACKET WAS RECEIVED