Gente, finalmente junté coraje y lo subi a producción con la solución
que se me ocurrió. Hasta ahora funciona perfecto!

De todas formas si alguno encuentra algún problema al encare que le di
o se le ocurre otra solución estaré muy agradecido.

Saludos
Luis

2010/5/5 Luis Farzati <[email protected]>:
> Colegas listeros,
>
> Por esas razones de la vida me encuentro teniendo que ejecutar regexes
> que vienen de quién sabe dónde. La cuestión es que a veces llegan
> regexes que no están muy bien escritas y son de esas que se disparan
> exponencialmente al infinito y nunca se resuelven.
>
> Quisiera saber cómo lo resolverían ustedes... Yo por ahora hice esto:
>
> Como primer medida, decidi ejecutarlas en un thread aparte y esperar
> un ManualResetEvent hasta un lapso (x ejemplo 500ms). Hasta ahi bien,
> el flujo puede seguir normalmente.
>
> El problema es que esa regex sigue ejecutándose en ese thread
> llevándome el CPU a picos de a veces hasta el 100%. Segunda medida: si
> la espera da timeout, antes de ignorar el thread y seguir de largo le
> seteo la prioridad en Lowest. Ahi la cosa mejoró bastante.
>
> Idealmente quisiera matar ese thread, y Thread.Abort() hace algo
> parecido pero por lo visto en blogs y foros, es sinónimo de muerte.
> Será tan asi, en este caso en el que no hay recursos dependientes ni
> nada por el estilo, es sólo una maldita regex aislada??
>
> Por supuesto que ya lo probé y funciona de lujo, pero hablan tantas
> pestes de este método que no quiero ponerlo en producción hasta no
> tener más feedback...
>
> Desde ya les estaré muy agradecido!!
> Luis
>
>

Responder a