As we mentioned before, icq_Main (line 227) is very important in that aspect that it listens on the network and activates the correct callbacks.
icq_Main(&link);
This function is non blocking. It does, however, call the callback functions. So if you want a block free implementation, make sure your callbacks are non-blocking as well.
We estimate that for ``smooth'' operation you would like to call icq_Main every few seconds.