// if the step is from a subworkflow, then the missing target
// should be resolved by the nested workflow
runnable._child_socket.send_pyobj(res)
reply = runnable._child_socket.recv_pyobj()
if reply: // if the target is resolvable in nested workflow
runnable._status = "target_pending"
runnable._pending_targets = [missed]
// tell the step that the target is resolved and it can continue
After Change
// if the step is from a subworkflow, then the missing target
// should be resolved by the nested workflow
runnable._child_socket.send(encode_msg(res))
reply = decode_msg(runnable._child_socket.recv())
if reply: // if the target is resolvable in nested workflow
runnable._status = "target_pending"
runnable._pending_targets = [missed]
// tell the step that the target is resolved and it can continue