Benny Halevy
d46958d3ce
phased_barrier: advance_and_await: abort on allocation failure
...
Currently, advance_and_wait() allocates a new gate
which might fail. Rather than returning this failure
as an exceptional future - which will require its callers
to handle that failure, keep the function as noexcept and
let an exception from make_lw_shared<gate>() terminate the program.
This makes the function "fail-free" to its callers,
in particular, when called from the table::stop() path where
we can't do much about these failures and we require close/stop
functions to always succeed.
The alternative of make the allocation of a new gate optional
and covering from it in start() is possible but was deemed not
worth it as it will add complexity and cost to start() that's
called on the common, hot, path.
Signed-off-by: Benny Halevy <bhalevy@scylladb.com >
Message-Id: <20210525055336.1190029-1-bhalevy@scylladb.com >
2021-05-25 12:50:59 +02:00
..
2018-10-02 18:48:23 +01:00
2020-01-30 14:10:18 +02:00
2021-05-19 09:23:49 +03:00
2021-02-15 17:47:59 +03:00
2021-02-15 17:47:59 +03:00
2018-12-24 09:58:08 +02:00
2018-12-24 09:58:08 +02:00
2020-04-23 16:06:37 +03:00
2020-10-11 22:09:19 +03:00
2020-06-25 15:33:31 -07:00
2021-03-17 17:00:38 +01:00
2020-09-22 17:24:33 +03:00
2021-05-12 03:48:07 +03:00
2021-05-12 03:48:07 +03:00
2021-02-10 13:04:35 +02:00
2021-05-19 09:23:49 +03:00
2020-10-11 17:23:40 +03:00
2020-08-03 15:55:16 +03:00
2020-06-18 14:08:29 +03:00
2020-11-10 15:45:01 +02:00
2020-07-03 12:28:14 -07:00
2018-12-03 14:36:08 +01:00
2021-03-18 12:40:03 +02:00
2021-05-19 09:23:49 +03:00
2021-05-24 18:34:45 +03:00
2021-05-24 18:34:45 +03:00
2020-08-03 12:51:16 +03:00
2020-03-23 09:29:45 +02:00
2021-05-20 01:33:18 +03:00
2021-04-11 18:56:21 +03:00
2020-11-17 10:15:47 +01:00
2020-11-17 10:15:47 +01:00
2020-02-09 17:26:52 +02:00
2021-03-30 09:29:46 +02:00
2021-03-08 16:04:20 +01:00
2021-05-11 18:39:10 +03:00
2020-09-22 17:24:33 +03:00
2021-03-21 09:28:23 +02:00
2020-06-18 14:18:21 +03:00
2020-02-29 19:28:57 +02:00
2020-02-29 19:28:57 +02:00
2020-03-23 09:29:45 +02:00
2021-05-20 00:04:51 +03:00
2020-11-01 16:46:18 +02:00
2020-04-05 12:46:04 +03:00
2019-12-12 17:32:10 +03:00
2020-10-11 14:40:32 +03:00
2021-05-20 01:33:18 +03:00
2021-03-31 12:09:52 +02:00
2020-06-01 09:08:40 +03:00
2020-06-01 09:08:40 +03:00
2020-06-14 08:18:39 -07:00
2021-04-20 21:23:00 +03:00
2020-11-04 11:13:59 +02:00
2020-10-13 12:32:14 +03:00
2020-10-13 12:32:14 +03:00
2018-11-01 13:16:17 +00:00
2019-11-26 02:24:49 +03:00
2020-03-23 09:29:45 +02:00
2021-05-19 09:23:49 +03:00
2021-05-19 09:23:49 +03:00
2020-04-05 12:46:04 +03:00
2020-11-02 18:03:19 +02:00
2020-02-27 09:34:51 -05:00
2020-02-27 09:34:51 -05:00
2021-03-17 17:00:38 +01:00
2020-08-04 17:54:45 +03:00
2021-05-20 01:33:18 +03:00
2021-05-20 01:33:18 +03:00
2021-05-22 20:49:00 +02:00
2021-05-02 15:22:04 +02:00
2021-04-01 10:39:42 +02:00
2021-05-23 12:16:56 +03:00
2019-10-15 15:41:42 +03:00
2021-05-19 09:23:49 +03:00
2020-11-24 12:23:56 +02:00
2020-03-23 09:29:45 +02:00
2020-03-04 12:42:57 +02:00
2020-09-22 17:24:33 +03:00
2020-08-18 14:31:04 +03:00
2020-08-18 14:31:04 +03:00
2021-02-16 21:35:14 +01:00
2020-07-14 16:29:43 +03:00
2018-07-11 10:15:01 +01:00
2018-07-20 13:50:17 -07:00
2021-05-25 12:50:59 +02:00
2020-03-23 09:29:45 +02:00
2020-10-18 18:16:30 +03:00
2019-01-08 13:16:36 +02:00
2020-04-05 12:46:04 +03:00
2021-05-20 01:33:18 +03:00
2021-05-20 00:42:47 +03:00
2021-04-25 21:53:46 +03:00
2020-03-23 11:59:30 +02:00
2021-02-16 21:35:15 +01:00
2020-10-14 16:45:21 +03:00
2021-05-05 12:10:59 +03:00
2021-03-08 16:04:20 +01:00
2020-05-23 11:09:10 +03:00
2018-12-28 16:31:24 +01:00
2020-09-22 17:24:33 +03:00
2020-09-22 17:24:33 +03:00
2021-03-23 09:21:14 +02:00
2021-01-15 14:05:44 +01:00
2021-04-06 17:12:54 +03:00
2021-04-06 17:12:54 +03:00
2018-11-21 00:01:44 +02:00
2021-05-02 16:39:52 +03:00