I have the following situation:
There is a thread that reads from a device with a fread call. This call is blocking as long as there is no data send from the device.
Take a look at man 2 kill. (Or see here)
man 2 kill
I get the feeling that you don't want to do this, though--most of the time people ignore errno EINTR and read again. You might want to look into non-blocking reads instead.
EINTR