Du hast das return(0); aus der while schleife herausgenommen und am schluss noch ein while(1); hingehängt, aber ich glaube das return war ausschlaggebend.