3.12 How to put time out on integrate in DSolve?

see https://mathematica.stackexchange.com/questions/120364/why-cant-dsolve-find-a-solution-for-this-ode/120650#120650 by Michael E2.

ClearAll[withTimedIntegrate]; 
SetAttributes[withTimedIntegrate, HoldFirst]; 
withTimedIntegrate[code_, tc_] := Module[{$in}, 
   Internal`InheritedBlock[{Integrate}, 
    Unprotect[Integrate]; 
    i : Integrate[___] /; ! TrueQ[$in] := 
     Block[{$in = True}, 
      TimeConstrained[i, tc, Inactivate[i, Integrate]] 
      ]; 
    Protect[Integrate]; 
    code 
    ] 
   ]; 
 
withTimedIntegrate[{dsol} = DSolve[ode == 0, y, x], 1]; // AbsoluteTiming 
dsol