This is in extension to my previous question
http://stackoverflow.com/questions/1107391/how-does-blocking-mode-in-unix-linux-sockets-works
What i gather from Internet now, all the process invoking blocking calls, are put to sleep until the scheduler finds the reasons to unblock it. The reasons can vary from buffer empty to buffer full to any other condition.
But then can this be an efficient way to real-time, lets say hard/firm real time applications? As the process is not unblocked when the unblocking condition hold true, rather when the scheduler give him his CPU slice, and the unblocking condition is both true.
As if u want a responsive solution, i dont this "spin locks" or "busy waits" are the right way to do it, CPU slices are wasted, and over-all the system shall get un-responsive or may poor-responsive.
Can somebody please clear this conflicting thoughts.