Looks reasonable enough to me. Acked-by and pushed.

Jason
---
Now instead of four in the eights place /
you’ve got three, ‘Cause you added one  /
(That is to say, eight) to the two,     /
But you can’t take seven from three,    /
So you look at the sixty-fours....



On Wed, Feb 22, 2017 at 3:47 PM, Peter Hutterer
<peter.hutte...@who-t.net> wrote:
> This was required when we only had the SIGIO handler because sending events
> allocates memory and things break. Now with the input thread we *can* send
> events from within the thread but it can mess up other delivery.
>
> https://bugs.freedesktop.org/show_bug.cgi?id=99887
>
> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
> ---
>  src/wcmXCommand.c | 29 +++++++++++++----------------
>  1 file changed, 13 insertions(+), 16 deletions(-)
>
> diff --git a/src/wcmXCommand.c b/src/wcmXCommand.c
> index df7fcea..0e1d657 100644
> --- a/src/wcmXCommand.c
> +++ b/src/wcmXCommand.c
> @@ -656,20 +656,22 @@ wcmSetHWTouchProperty(InputInfoPtr pInfo)
>                                prop->size, &prop_value, TRUE);
>  }
>
> -#if !HAVE_THREADED_INPUT
>  static CARD32
>  touchTimerFunc(OsTimerPtr timer, CARD32 now, pointer arg)
>  {
>         InputInfoPtr pInfo = arg;
> +#if !HAVE_THREADED_INPUT
>         int sigstate = xf86BlockSIGIO();
> +#endif
>
>         wcmSetHWTouchProperty(pInfo);
>
> +#if !HAVE_THREADED_INPUT
>         xf86UnblockSIGIO(sigstate);
> +#endif
>
>         return 0;
>  }
> -#endif
>
>  /**
>   * Update HW touch property when its state is changed by touch switch
> @@ -684,14 +686,10 @@ wcmUpdateHWTouchProperty(WacomDevicePtr priv, int 
> hw_touch)
>
>         common->wcmHWTouchSwitchState = hw_touch;
>
> -#if HAVE_THREADED_INPUT
> -       wcmSetHWTouchProperty(priv->pInfo);
> -#else
> -       /* This function is called during SIGIO. Schedule timer for property
> -        * event delivery outside of signal handler. */
> +       /* This function is called during SIGIO/InputThread. Schedule timer
> +        * for property event delivery by the main thread. */
>         priv->touch_timer = TimerSet(priv->touch_timer, 0 /* reltime */,
>                                       1, touchTimerFunc, priv->pInfo);
> -#endif
>  }
>
>  /**
> @@ -1074,20 +1072,23 @@ wcmSetSerialProperty(InputInfoPtr pInfo)
>                                prop->size, prop_value, TRUE);
>  }
>
> -#if !HAVE_THREADED_INPUT
>  static CARD32
>  serialTimerFunc(OsTimerPtr timer, CARD32 now, pointer arg)
>  {
>         InputInfoPtr pInfo = arg;
> +
> +#if !HAVE_THREADED_INPUT
>         int sigstate = xf86BlockSIGIO();
> +#endif
>
>         wcmSetSerialProperty(pInfo);
>
> +#if !HAVE_THREADED_INPUT
>         xf86UnblockSIGIO(sigstate);
> +#endif
>
>         return 0;
>  }
> -#endif
>
>  void
>  wcmUpdateSerial(InputInfoPtr pInfo, unsigned int serial, int id)
> @@ -1100,14 +1101,10 @@ wcmUpdateSerial(InputInfoPtr pInfo, unsigned int 
> serial, int id)
>         priv->cur_serial = serial;
>         priv->cur_device_id = id;
>
> -#if HAVE_THREADED_INPUT
> -       wcmSetSerialProperty(pInfo);
> -#else
> -       /* This function is called during SIGIO. Schedule timer for property
> -        * event delivery outside of signal handler. */
> +       /* This function is called during SIGIO/InputThread. Schedule timer
> +        * for property event delivery by the main thread. */
>         priv->serial_timer = TimerSet(priv->serial_timer, 0 /* reltime */,
>                                       1, serialTimerFunc, pInfo);
> -#endif
>  }
>
>  static void
> --
> 2.9.3
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> Linuxwacom-devel mailing list
> Linuxwacom-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to