hopez
22/08/2010, 12:51
Buenas, estoy portando el gp2xmb a wiz y necesito algo de ayuda para implementar funcionalidades...
Después de arreglar mil cosillas (y otras mil que quedan, buff) me he centrado en la ejecución de los gpe/gpu, en la última versión simplemente se hace un execl del programa seleccionado cosa que da problemas:
Si el programa peta te quedas con pantallazo negro, si va bien normalmente los mismos scripts/programas vuelven a gp2xmenu original.
Me pregunto si existe algún artefacto capaz de volver al gp2xmb, por ahora he implementado un fork para evitar que si el lanzado falla se quede la pantalla en negro pero lo ideal sería que el padre pudiera detectar que el hijo crea un pid del gp2xmenu, lo cazara y lo matara para volver a su rutina de ejecución.
Se hay algo parecido que es la función waitpid el problema es que solamente espera que acabe un pid específico, no que comience.
He pensado en crear dos forks para dejar al padre libre y poder monitorizar los ps pero creo que si hago esto me estaré comiendo demasiado procesador y el hijo-hijo lanzado tendrá problemas de rendimiento.
¿alguien conoce una solución elegante para esto?
Después de arreglar mil cosillas (y otras mil que quedan, buff) me he centrado en la ejecución de los gpe/gpu, en la última versión simplemente se hace un execl del programa seleccionado cosa que da problemas:
Si el programa peta te quedas con pantallazo negro, si va bien normalmente los mismos scripts/programas vuelven a gp2xmenu original.
Me pregunto si existe algún artefacto capaz de volver al gp2xmb, por ahora he implementado un fork para evitar que si el lanzado falla se quede la pantalla en negro pero lo ideal sería que el padre pudiera detectar que el hijo crea un pid del gp2xmenu, lo cazara y lo matara para volver a su rutina de ejecución.
Se hay algo parecido que es la función waitpid el problema es que solamente espera que acabe un pid específico, no que comience.
He pensado en crear dos forks para dejar al padre libre y poder monitorizar los ps pero creo que si hago esto me estaré comiendo demasiado procesador y el hijo-hijo lanzado tendrá problemas de rendimiento.
¿alguien conoce una solución elegante para esto?