I saw this example in a textbook and a statement saying that this algorithm cannot be used for the forward direction of a proof that proves a language is Turing recognisable iff some enumerator enumerates it.
$s_1, s_2$ ... is a list of strings over Σ*
E = Ignore the input.
- Repeat the following for i = 1, 2, 3, ...
- Run M on $s_i$
- If it accepts, print out $s_i$
I know it's to do with step 2 but I'm not sure how that changes things.
Your question is missing relevant details and your title doesn't seem to match. I am going to assume you mean to ask
The recognizer $M$ could potentially do one of three things on a given input:
If $M$ never halts, then $E$ gets stuck, unable to proceed any further.
This approach to enumerating a language needs to be fixed by some multi-threading scheme that allows you to run $M$ on all inputs in parallel, so that $M$ looping forever on some input doesn't block the overall program.