Yanqin Jin
f15414b656
Timer should run scheduled function without mutex ( #7228 )
...
Summary:
Timer (defined in timer.h) schedules and runs user-specified fuctions
regularly. Current implementation holds the mutex while running user
function, which will lead to contention and waiting.
To fix, Timer::Run releases mutex before running user function, and
re-acquires it afterwards.
This fix will impact how we can cancel a task. If the task is running,
it is not holding the mutex. The thread calling Cancel() should wait
until the current task finishes.
Test Plan (devserver):
make check
COMPILE_WITH_ASAN=1 make check
Pull Request resolved: https://github.com/facebook/rocksdb/pull/7228
Reviewed By: jay-zhuang
Differential Revision: D23065487
Pulled By: riversand963
fbshipit-source-id: 07cb59741f506d3eb875c8ab90f73437568d3724
2020-08-11 22:37:39 -07:00
..
2020-03-06 14:05:12 -08:00
2020-02-20 12:09:57 -08:00
2020-05-21 14:48:10 -07:00
2020-02-20 12:09:57 -08:00
2020-06-22 13:32:07 -07:00
2019-04-18 10:55:01 -07:00
2017-07-15 16:11:23 -07:00
2020-07-02 19:25:41 -07:00
2020-02-20 12:09:57 -08:00
2020-06-02 15:05:07 -07:00
2020-02-20 12:09:57 -08:00
2020-05-21 08:12:51 -07:00
2020-02-20 12:09:57 -08:00
2020-03-06 16:24:27 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-05-12 09:27:35 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-05-08 14:14:00 -07:00
2019-09-20 12:04:26 -07:00
2019-05-21 16:22:35 -07:00
2019-05-21 16:22:35 -07:00
2019-06-24 16:12:39 -07:00
2019-05-21 16:22:35 -07:00
2020-02-20 12:09:57 -08:00
2020-04-20 13:24:25 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-04-13 19:13:41 -07:00
2020-05-21 08:12:51 -07:00
2020-07-09 14:35:17 -07:00
2020-06-25 17:25:42 -07:00
2020-06-22 13:32:07 -07:00
2019-10-07 20:10:53 -07:00
2020-03-20 14:59:54 -07:00
2020-02-20 12:09:57 -08:00
2020-04-20 13:24:25 -07:00
2020-02-20 12:09:57 -08:00
2020-06-03 15:55:03 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-04-28 14:49:34 -07:00
2020-04-20 13:24:25 -07:00
2020-02-20 12:09:57 -08:00
2020-04-21 13:16:31 -07:00
2019-05-21 16:22:35 -07:00
2020-02-20 12:09:57 -08:00
2020-07-09 14:35:17 -07:00
2020-07-09 14:35:17 -07:00
2020-08-11 12:41:30 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-07-09 18:12:55 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-05-21 10:58:39 -07:00
2020-05-21 10:58:39 -07:00
2020-02-20 12:09:57 -08:00
2020-06-04 11:44:09 -07:00
2020-07-15 09:23:23 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-06-13 13:25:20 -07:00
2020-06-13 13:25:20 -07:00
2017-07-15 16:11:23 -07:00
2020-02-20 12:09:57 -08:00
2020-08-11 22:37:39 -07:00
2020-08-11 22:37:39 -07:00
2020-07-07 17:26:16 -07:00
2020-02-20 12:09:57 -08:00
2020-04-01 16:40:18 -07:00
2020-04-03 10:26:49 -07:00
2020-03-16 17:02:00 -07:00
2020-04-20 13:24:25 -07:00
2019-10-24 17:16:46 -07:00