[erlang-questions] Dialyzer and erlang:hibernate/3

Loïc Hoguin essen@REDACTED
Tue Sep 27 02:00:08 CEST 2011


Hello!

I'm having an issue with Dialyzer.

I have a bunch of functions that call each other one after another and
they all return the atom 'ok'. On one case I have a function clause that
calls erlang:hibernate/3. When resuming from hibernate Erlang calls
another function from that module that also returns 'ok'.

So Dialyzer complains that erlang:hibernate/3 will never return, and
obviously it doesn't. But does that mean that I must add the type
no_return() to the returned values of all my functions? This doesn't
feel too natural to me because hibernating is pretty much transparent
and my code only returns the atom 'ok' at the end when unwrapping the
stacktrace.

Has anyone had this issue with Dialyzer before and is there a good way
to handle it?

Shouldn't Dialyzer have a special case to handle erlang:hibernate/3 to
avoid this kind of issues?

Would be glad to hear your thoughts about this.

-- 
Loïc Hoguin
Dev:Extend



More information about the erlang-questions mailing list