Guten Morgen, mood-indigo-Fangemeinde!
Heute ist Denksport-Tag:
Stellt Euch ein Spiel mit einer Quake-ähnlichen Console vor. Auf der kann man alles mögliche einstellen und z.B. Level laden.
Die Console spaltet beim öffnen einen Thread (pthread) ab, der sich auf stdin hängt und auf Benutzereingaben wartet. Sobald eine kommt, wird die geparsed und in die Ereignisschleife des Haupt-Threads gepostet.
Jetzt das Problem: Wenn jemand das Fenster schliesst, versucht der Haupt-Thread, die Console zu schliessen. Der Consolen-thread steckt aber gerade mitten in fgets() und ein fclose() auf stdin wartet, bis er da wieder rauskommt.
Unter Win32 verwende ich CloseHandle(), dass dem auf Eingaben wartenden Consolen-Thread dann ein EOF zu lesen gibt, mit dem der zufrieden ist. Leider fehlt mir unter IRIX die Erfahrung für einen ähnlichen Trick...
Irgendwelche Ideen?
Danke,
Tilmann