Commit 3f45ed24 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

thread: Change if-else_if to switch-case blocks of thread_execute_poller()



Change if - else if - else blocks of thread_execute_poller() and
thread_execute_timed_poller() to switch - cases blocks and specify
possible states explicitly in these switch - cases blocks.

The code will be simpler and clarified, and then the following patches
will be easier.

Signed-off-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I2e283894f5d69e1bd67466ae070c5b8bb9014616
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7664


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
parent 54215a1e
Loading
Loading
Loading
Loading
+36 −8
Original line number Diff line number Diff line
@@ -608,15 +608,21 @@ thread_execute_poller(struct spdk_thread *thread, struct spdk_poller *poller)
{
	int rc;

	if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
	switch (poller->state) {
	case SPDK_POLLER_STATE_UNREGISTERED:
		TAILQ_REMOVE(&thread->active_pollers, poller, tailq);
		free(poller);
		return 0;
	} else if (poller->state == SPDK_POLLER_STATE_PAUSING) {
	case SPDK_POLLER_STATE_PAUSING:
		TAILQ_REMOVE(&thread->active_pollers, poller, tailq);
		TAILQ_INSERT_TAIL(&thread->paused_pollers, poller, tailq);
		poller->state = SPDK_POLLER_STATE_PAUSED;
		return 0;
	case SPDK_POLLER_STATE_WAITING:
		break;
	default:
		assert(false);
		break;
	}

	poller->state = SPDK_POLLER_STATE_RUNNING;
@@ -633,11 +639,19 @@ thread_execute_poller(struct spdk_thread *thread, struct spdk_poller *poller)
	}
#endif

	if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
	switch (poller->state) {
	case SPDK_POLLER_STATE_UNREGISTERED:
		TAILQ_REMOVE(&thread->active_pollers, poller, tailq);
		free(poller);
	} else if (poller->state != SPDK_POLLER_STATE_PAUSED) {
		break;
	case SPDK_POLLER_STATE_PAUSED:
		break;
	case SPDK_POLLER_STATE_RUNNING:
		poller->state = SPDK_POLLER_STATE_WAITING;
		break;
	default:
		assert(false);
		break;
	}

	return rc;
@@ -649,15 +663,21 @@ thread_execute_timed_poller(struct spdk_thread *thread, struct spdk_poller *poll
{
	int rc;

	if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
	switch (poller->state) {
	case SPDK_POLLER_STATE_UNREGISTERED:
		TAILQ_REMOVE(&thread->timed_pollers, poller, tailq);
		free(poller);
		return 0;
	} else if (poller->state == SPDK_POLLER_STATE_PAUSING) {
	case SPDK_POLLER_STATE_PAUSING:
		TAILQ_REMOVE(&thread->timed_pollers, poller, tailq);
		TAILQ_INSERT_TAIL(&thread->paused_pollers, poller, tailq);
		poller->state = SPDK_POLLER_STATE_PAUSED;
		return 0;
	case SPDK_POLLER_STATE_WAITING:
		break;
	default:
		assert(false);
		break;
	}

	poller->state = SPDK_POLLER_STATE_RUNNING;
@@ -674,13 +694,21 @@ thread_execute_timed_poller(struct spdk_thread *thread, struct spdk_poller *poll
	}
#endif

	if (poller->state == SPDK_POLLER_STATE_UNREGISTERED) {
	switch (poller->state) {
	case SPDK_POLLER_STATE_UNREGISTERED:
		TAILQ_REMOVE(&thread->timed_pollers, poller, tailq);
		free(poller);
	} else if (poller->state != SPDK_POLLER_STATE_PAUSED) {
		break;
	case SPDK_POLLER_STATE_PAUSED:
		break;
	case SPDK_POLLER_STATE_RUNNING:
		poller->state = SPDK_POLLER_STATE_WAITING;
		TAILQ_REMOVE(&thread->timed_pollers, poller, tailq);
		poller_insert_timer(thread, poller, now);
		break;
	default:
		assert(false);
		break;
	}

	return rc;