If I set a file descriptor non-blocking and issue I/O operation on a slow, or heavy loaded disk, how will this affect the process and threads while kernel loads data from disk into core? Will it block the thread doing I/O or the entire process? Or will it return with EAGAIN immediately without blocking?