diff options
author | Mateusz Moscicki <m.moscicki2@partner.samsung.com> | 2022-10-27 19:53:27 +0200 |
---|---|---|
committer | Seung-Woo Kim <sw0312.kim@samsung.com> | 2022-10-31 00:59:42 +0000 |
commit | 483310c442d54274f2fb996cdcd4efe808c90bed (patch) | |
tree | 197aad725dad906ea6788c5f988fabf9b2e00830 /debian/compat | |
parent | 92f6107b7b240a6130d63e9e36813a9f6b654543 (diff) | |
download | lthor-483310c442d54274f2fb996cdcd4efe808c90bed.tar.gz lthor-483310c442d54274f2fb996cdcd4efe808c90bed.tar.bz2 lthor-483310c442d54274f2fb996cdcd4efe808c90bed.zip |
Fix the race in data_finished() and resp_finished()accepted/tools/devbase/tools/legacy/20240424.050712accepted/tools/devbase/tools/legacy/20240423.040731accepted/tools/devbase/tools/legacy/20240422.110856accepted/tools_devbase_tools_legacy
Setting the data_finished and resp_finished flags too early sometimes
led to a situation in which another chunk was sent, even though the
functions had not finished executing, which resulted in a flashing
error.
For example:
When data_finished() was called, the flag data_finished was set. Then
after entering aio_error/aio_return the thread would be put to sleep and
the program would start executing the resp_finished() function. The
function was executed to the end and because data_finished flag was set,
the check_next_chunk() was called.
After that, the thread with data_finished() would return from sleep and
continue its execution, even though the data it was pointing to at that
moment is out of date. This led, among other things, to a mismatch
between numbers of chunk and the response.
Change-Id: I404b3723cb9e671d13221bff2b7823f1fdc43906
Signed-off-by: Mateusz Moscicki <m.moscicki2@samsung.com>
(cherry picked from commit 400428531184493e9d025af29286d071f84c1115)
Diffstat (limited to 'debian/compat')
0 files changed, 0 insertions, 0 deletions