I've noticed in recent months a recurring problem in games that spawn off a soundserver to manage sound output. This especially concerns those games that are written from scratch (ie., not using clanlib or some other game development toolkit, which presumably do things right :-). Many of these games (I've found 3 so far; cf #31274, #112584, #149228) use a Unix-level pipe to communicate with the soundserver process. However, they do not handle pipe conditions such as EOF or EPIPE properly. They often work OK when the game is able to open the sound device; but a lot of problems arise when sound hardware is not available / not accessible to the game. Symptoms include: - soundserver processes lingering around after the game exits - kill -9 of the game orphans the soundserver (soundserver doesn't detect when main process is gone) - the above two conditions often results in an infinite loop in the soundserver that consumes 100% CPU, leading to lockups on slow machines or slowdown on faster ones. - the entire game may hang after a while (pipe fills up and write() blocks) The thing is, there is often an EASY fix for these problems. So this is my offer to help DD's who maintain such games fix these soundserver-related problems in their packages. If you maintain a game that exhibits symptoms like what I describe, please let me know and I'll take a look at them. Thanks! T -- Why waste time learning, when ignorance is instantaneous? -- Hobbes
Attachment:
pgpPRa5F_vATp.pgp
Description: PGP signature