abort_source: request_abort: prevent undefined behavior in clear_and_dispose
abort_source: request_abort: prevent undefined behavior in clear_and_dispose

Looking at the boost::intrusive::list implementation
we could hit UB if a subscription _target causes the
next subscription on the list to be deleted. For example
this could happen if a destroyed object contains the next
subscription.

To prevent that, this change calls the subscription target
one subscription at a time, dequeuing the list's front
until its empty.

Signed-off-by: Benny Halevy <23c997c90eb8537635e9392d48e7af1bf1b2ca22@scylladb.com>

syuu1228/seastar,scylladb/seastar,syuu1228/seastar,scylladb/seastar,scylladb/seastar,avikivity/seastar,avikivity/seastar,avikivity/seastar,syuu1228/seastar