I have a simple server program, written in C on Debian using the pthread lib. The program handles the communication between some clients which want to share files. For each client there is a handler thread. Now, at some point, each thread will block on recv() waiting for any client file requests. If one of the clients asks for a specific file owned, by another client, the server has to get this file from its owner, through its handler thread, and then deliver the file to the client which requested it, through its handler thread. As all the threads are blocked on the recv() calls, how can they be noticed by other threads that they have to request a file to the client they are handling? Is there any way to "interrupt" the recv(), serve the request and then go back to the recv()?I have a simple server program, written in C on