GNU bug report logs -
#56487
xgselect race condition leading to abort when USE_GTK not defined
Previous Next
Full log
View this message in rfc822 format
Tom Gillespie <tgbugs <at> gmail.com> writes:
> -#ifdef USE_GTK
> bool already_has_events;
> -#endif
>
> if (xg_select_suppress_count)
> return pselect (fds_lim, rfds, wfds, efds, timeout, sigmask);
> @@ -126,8 +132,8 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds,
> context = g_main_context_default ();
> acquire_select_lock (context);
>
> -#ifdef USE_GTK
> already_has_events = g_main_context_pending (context);
> +#ifdef USE_GTK
> #ifndef HAVE_PGTK
> already_has_events = already_has_events && x_gtk_use_native_input;
> #endif
> @@ -179,12 +185,6 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds,
> tmop = &tmo;
> }
>
> -#ifndef USE_GTK
> - fds_lim = max_fds + 1;
> - nfds = thread_select (pselect, fds_lim,
> - &all_rfds, have_wfds ? &all_wfds : NULL, efds,
> - tmop, sigmask);
> -#else
> /* On PGTK, when you type a key, the key press event are received,
> and one more key press event seems to be received internally.
>
> @@ -217,7 +217,6 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds,
> FD_ZERO (efds);
> our_fds++;
> }
> -#endif
>
> if (nfds < 0)
> retval = nfds;
> @@ -248,11 +247,7 @@ xg_select (int fds_lim, fd_set *rfds, fd_set *wfds, fd_set *efds,
>
> /* If Gtk+ is in use eventually gtk_main_iteration will be called,
> unless retval is zero. */
> -#ifdef USE_GTK
> need_to_dispatch = retval == 0;
> -#else
> - need_to_dispatch = true;
> -#endif
>
> /* xwidgets make heavy use of GLib subprocesses, which add their own
> SIGCHLD handler at arbitrary locations. That doesn't play well
Thanks. Why did the code previously under !USE_GTK have to be removed?
This bug report was last modified 115 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.