Martin Ågren
0c2ad00b3c
pack-objects: take lock before accessing remaining
...
When checking the conditional of "while (me->remaining)", we did not
hold the lock. Calling find_deltas would still be safe, since it checks
"remaining" (after taking the lock) and is able to handle all values. In
fact, this could (currently) not trigger any bug: a bug could happen if
`remaining` transitioning from zero to non-zero races with the evaluation
of the while-condition, but these are always separated by the
data_ready-mechanism.
Make sure we have the lock when we read `remaining`. This does mean we
release it just so that find_deltas can take it immediately again. We
could tweak the contract so that the lock should be taken before calling
find_deltas, but let's defer that until someone can actually show that
"unlock+lock" has a measurable negative impact.
Signed-off-by: Martin Ågren <martin.agren@gmail.com >
Signed-off-by: Junio C Hamano <gitster@pobox.com >
2017-08-23 10:14:19 -07:00
..
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2016-09-07 12:59:42 -07:00
2016-11-22 13:55:20 -08:00
2017-06-24 14:28:41 -07:00
2017-07-12 15:18:23 -07:00
2017-03-21 11:18:41 -07:00
2017-07-05 13:32:57 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-07-10 13:42:51 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-05-30 14:45:03 +09:00
2017-07-13 16:14:54 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 15:29:31 -07:00
2017-06-24 14:28:41 -07:00
2017-06-30 12:49:28 -07:00
2017-06-30 12:49:28 -07:00
2017-03-31 08:33:56 -07:00
2017-07-13 16:14:54 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-07-05 13:32:56 -07:00
2017-07-18 12:48:10 -07:00
2017-07-13 16:14:54 -07:00
2017-06-15 12:56:22 -07:00
2017-06-15 12:56:22 -07:00
2017-07-05 13:32:57 -07:00
2017-06-15 12:56:22 -07:00
2016-06-13 10:37:48 -07:00
2017-07-12 15:18:23 -07:00
2017-06-24 14:28:41 -07:00
2017-06-23 18:27:07 -07:00
2017-06-24 14:28:41 -07:00
2017-03-21 11:18:41 -07:00
2017-05-08 12:18:19 +09:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-03-26 22:08:21 -07:00
2016-09-15 13:17:32 -07:00
2017-05-08 15:12:57 +09:00
2017-06-24 14:28:41 -07:00
2017-05-08 12:18:19 +09:00
2017-06-15 12:56:22 -07:00
2017-07-10 13:42:51 -07:00
2017-06-24 14:28:41 -07:00
2017-08-23 10:14:19 -07:00
2017-05-08 12:18:19 +09:00
2017-04-14 03:53:25 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 11:09:52 -07:00
2017-07-05 13:32:56 -07:00
2017-07-13 16:14:54 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-07-12 15:18:23 -07:00
2017-07-10 13:42:51 -07:00
2017-05-30 14:45:04 +09:00
2017-05-30 14:45:04 +09:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-07-10 13:42:51 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-06-15 12:56:22 -07:00
2017-07-10 13:42:51 -07:00
2017-01-23 18:51:56 -08:00
2017-06-15 12:56:22 -07:00
2017-07-10 13:59:09 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-06-15 12:56:22 -07:00
2017-05-30 14:45:04 +09:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00
2017-06-15 12:56:22 -07:00
2017-06-24 14:28:41 -07:00
2017-06-15 12:56:22 -07:00