 Therefore, synchronous IPC must provide a means to prevent indefinite blocking.Many microkernels provide timeouts on IPC calls, which limit the blocking time.In practice, choosing sensible timeout values is difficult, and systems almost inevitably use infinite timeouts for clients and zero timeouts for servers.