Prevents an issue where gpbs could block in XNextEvent and other

applications contacting the pasteboard server become unresponsive.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/branches/stable@27057 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Wolfgang Lux 2008-11-14 21:38:19 +00:00
parent 54fd7095de
commit ca1277e635
3 changed files with 18 additions and 0 deletions

View file

@ -1,3 +1,13 @@
2008-11-14 Wolfgang Lux <wlux@uni-muenster.de>
* Tools/gpbs.m (init): Don't change SIGABRT handler to prevent
infinite recursion on abort().
* Tools/xpbs.m (+receivedEvent:type:extra:forMode:): Don't cache
number of pending events. Prevents an issue where gpbs could block
in XNextEvent and other applications contacting the pasteboard
server become unresponsive.
2008-08-19 Fred Kiefer <FredKiefer@gmx.de>
* Source/art/ARTContext.m (-GSSetDevice:::): Only call

View file

@ -1204,6 +1204,7 @@ init(int argc, char** argv, char **env)
for (count = 0; count < NSIG; count++)
{
if (count == SIGABRT) continue;
#ifdef SIGPROF
if (count == SIGPROF) continue;
#endif

View file

@ -314,7 +314,14 @@ static NSString *xWaitMode = @"XPasteboardWaitMode";
while ((count = XPending(xDisplay)) > 0)
{
#if 0
/* Don't attempt to be smart here. We may enter this method recursively
* when further data is requested while processing this event, which
* means that the count will not longer be correct when returning to
* the outer invocation.
*/
while (count-- > 0)
#endif
{
XEvent xEvent;