Erlang / Erlang Advanced Interview questions
How does erlang:send/3 with the nosuspend option change message-sending behavior?
A plain Pid ! Msg send can, in rare cases, briefly suspend the sending process if the
underlying distribution buffer to a remote node is full — effectively creating unwanted back-pressure on
the sender. erlang:send(Pid, Msg, [nosuspend]) asks for the same send but refuses to suspend the
caller: if it would have had to block, it instead returns nosuspend immediately and the message is
not delivered.
case erlang:send(Pid, {event, Data}, [nosuspend]) of ok -> ok; nosuspend -> log_dropped_event(Data) end.
This is useful for genuinely best-effort traffic — metrics, non-critical notifications — where a sender would rather drop a message than risk stalling itself waiting on a slow or overloaded remote link. It's deliberately not the default, since silently dropping messages is the wrong tradeoff for anything the receiver actually needs to see.
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
