Не уверен, что понимаю ваш вопрос; в любом случае, вы можете иметь несколько «предложений» в операторе получения, поэтому он становится «разблокированным» при получении чего-либо с любой стороны:
loop() ->
receive
{ssl, Msg} -> % incoming msg from SSL, send it to process
Proc ! Msg,
loop();
{proc, Msg} -> % incoming msg from process, send it to SSL
SSL ! Msg,
loop()
end.
Важно то, что вам нужно форматировать сообщения таким образом, чтобы вы могли различать SSL и обрабатывать сообщения с сопоставлением с шаблоном.