When calling `gen_server:call/3`, the timeout will be handled locally in the caller. The gen server process itself does not need to care. 

The timeouts in `gen_server` does not work like that, the `call/3` function immediately sends the message to the process, and only waits for the given timeout. It is *not* a guarantee that the call will be handled in this time.