Change wakeup() from private to public in reactor.hh
Change wakeup() from private to public in reactor.hh

This patch includes the changes allowing customizable poller registration
in user code. Please see the proposal for customizable poller
registration in: https://groups.google.com/g/seastar-dev/c/K5oRV8hNPlM

Being a private method of reactor, wakeup() can only be called by the
friend class of reactor (e.g., the smp_message_queue and thread_pool).
Customizable pollers may correspond to some external event sources, and
the reactors should be waken up when an external event arrives if it is
sleeping. To support this, wakeup() in reactor has to be a public method.

We use a demo of external thread pool to illustrate how to register customizable pollers:
https://github.com/GoldenLeaves/seastar/pull/1/commits/88194df9926f93e7f8961dce0a7aded3c45bca72

In this demo, we added an external thread pool (see my_thread_pool.hh),
to which reactors can delegate blocking tasks to. Once an external thread
completes executing a task, it inserts a work item into the completed_queue of
the corresponding reactor. We register a poller (my_thread_pool_poller)
to check this completed_queue in each reactor. The initialization of the
external thread pool and pollers are conducted by micro_system::configure().

Signed-off-by: lisu.sl <ccfe1cdd597e911f64fc62d15a21483ba91fc006@alibaba-inc.com>
Message-Id: <20210817114029.56228-1-ccfe1cdd597e911f64fc62d15a21483ba91fc006@alibaba-inc.com>

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