You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The documentation for erlang:unlink/1 function states the following:
Once unlink(Id) has returned, it is guaranteed that the link between the caller and the entity referred to by Id has no effect on the caller in the future (unless the link is setup again). If the caller is trapping exits, an {'EXIT', Id, _} message from the link can have been placed in the caller's message queue before the call.
So if a process A with trap_exit set to true unlinks from a process B and then makes sure to clean up an EXIT message from B that might have been put into the mailbox before the call to unlink, it should be protected from seeing this EXIT message in the future. Concuerror doesn't seem to adhere to this semantics.
Describe the bug
The documentation for erlang:unlink/1 function states the following:
So if a process A with trap_exit set to true unlinks from a process B and then makes sure to clean up an EXIT message from B that might have been put into the mailbox before the call to unlink, it should be protected from seeing this EXIT message in the future. Concuerror doesn't seem to adhere to this semantics.
To Reproduce
Run Concuerror on the following module:
Concuerror reports an error:
Expected behavior
According to my reading of erlang:unlink/1 documentation this code is fine and no error should be reported.
The text was updated successfully, but these errors were encountered: