make gen-server protocol and gen-event handler suspendable