980c8c2047
This is an amalgam of https://reviews.apache.org/r/54435/ and
9c14863594
Removes notion of suspend/resume from procedure. Instead have the below lock states
and just unschedule if lock is not yet available
LOCK_ACQUIRED should be returned when the proc has the lock and the proc is ready to execute.
LOCK_YIELD_WAIT should be returned when the proc has not the lock and the framework
should take care of readding the procedure back to the runnable set for retry
LOCK_EVENT_WAIT should be returned when the proc has not the lock and someone will take care of
readding the procedure back to the runnable set when the lock is available.
Side benefit is being able to undo a bunch of synchronization around
procedure management.
Signed-off-by: Michael Stack <stack@apache.org>