diff options
author | Björn Gustavsson <[email protected]> | 2017-05-29 14:41:14 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2017-05-29 14:50:39 +0200 |
commit | 23f132d9ab776ab94c29f1faed76c9fde8f4a73f (patch) | |
tree | 321f24cb0a753e15927460f784ea4b28042a02db /erts/emulator/beam/beam_load.c | |
parent | 6ebe1a85f0ae97b383a9c1fa838b4e9f9a808e21 (diff) | |
download | otp-23f132d9ab776ab94c29f1faed76c9fde8f4a73f.tar.gz otp-23f132d9ab776ab94c29f1faed76c9fde8f4a73f.tar.bz2 otp-23f132d9ab776ab94c29f1faed76c9fde8f4a73f.zip |
Make sure that asynchronous replies are not lost
If an synchronous GC was requested by calling:
erlang:garbage_collect(Pid, [{async,Ref}])
the reply message could in certain circumstances be
lost.
The problem is in cleanup_sys_tasks() in erl_process.c.
If there were at least one dirty task, only the first
dirty task would be cleaned up. All other systems tasks
would not be cleaned up (that is, no replies would be
sent to other processes waiting for the tasks to finish).
Diffstat (limited to 'erts/emulator/beam/beam_load.c')
0 files changed, 0 insertions, 0 deletions